Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

drk1

Implementação de Código ( Funções )

Recommended Posts

Boa tarde, estou no seguinte dilema, para facilitar vou postar a questão completa;

 

 

"Escreva um programa em C para ler 5 pares de valores inteiros positivos (utilize a função LePositivo). Para cada par lido deve ser impresso o valor do maior elemento do par ou a frase "Eles são iguais" se os valores do par forem iguais. Para obter o maior elemento do par utilize a função MaiorNumero.

 

Nome: MaiorNumero

Descrição: Retorna o maior elemento entre 2 valores positivos. Se eles forem iguais deve ser retornado o valor -1.

Entrada: (int) Dois valores positivos.

Saída: (int) O maior deles ou -1 se eles forem iguais.

 

Nome: LePositivo

Descrição: Faz a leitura dos valores. Se ele for negativo ou zero, a leitura deve ser repetida até que o valor lido seja positivo.

Entrada: Nenhuma.

Saída: (int) os valores lidos."

 

eis meu código:

 

#include<stdio.h>

int main(){

  ler();
  system("pause");
  return 0;
}

ler(){
  int i, num[2],y=0;

  do{
  for(i=0; i < 2; i++){
     printf("Digite numero %d: ",i);
     scanf("%d",&num[i]);

  }
   y++;
  printf("\n%d\n",acharMaior(num, 2));
}while(y <= 4);
}

int acharMaior(int *num, int casd){
  int i, maior = 0;

  for(i=0; i < casd; i++){
     if (num[i] > maior){
        maior = num[i];
     }else if(num[0] == num[1]){
           return -1;
           }
  }

  return maior;
}

 

Se repararem, não fiz checagem de numero "positivo", pois é estou bastante confuso "aonde", fazer essa checagem e como, se puderem dar uma mão fico grato!

 

Desde já, Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não precisa usar um for na função achar, já que ele ta comparando PARES então vão ser sempre dois números passados... talvez poderia ficar dessa forma:

int acharMaior(int *num, int casd){
  if(num[0] > num[1])
      return num[0];
  else if (num[1] > num[0])
          return num[1];
  else
      return -1;
}

 

Isso para ver apenas em pares, como foi pedido no exercício.

Compartilhar este post


Link para o post
Compartilhar em outros sites

realmente nem pensei nisso, só vi funcionando e já me dei por satisfeito, mas o real problema que estou me deparando é justamente onde fazer essa verificação, não estou conseguindo analisar o código, onde botar o do while pra checar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.