Ir ao conteúdo

Ajuda Algoritmo C


nanet

Posts recomendados

Postado

Aí galera to precisando de uma ajuda com esse exercicio aqui.

Fazer um algoritmo que leia o nome e a altura de três pessoas, determinando o nome e a altura da menor e do maior delas que será apresentado ao usuário deste algoritmo.

A minha duvida é o seguinte, como vou achar a maior altura e o nome juntos e a menor altura e o nome juntos?

Postado

Você terá que fazer um loop pra pegar os valores correto?

Então a cada loop .. você pode pegar o valor do NOME e da Altura em variáveis auxiliares como

AlturaMax

NomeMax

AlturaMin

NomeMin

e a cada vez que o loop roda.. você verifica a condição para as variáveis citadas...

Postado

Olha fiz assim mas ainda não ta certo e ele não pega o menor. Se alguém puder dar uma dica.

int main(int argc, char *argv[])
{
int i;
char nome[20],nome_max[20],nome_men[20];
float a,maior_val,menor_val;
maior_val = 0;
menor_val = 0;
for (i = 0; i < 3; i++)
{
printf("Informe o nome: ");
scanf("%s",&nome);
printf("\n\n");
printf("Informe a altura: ");
scanf("%f",&a);
printf("\n\n");
}
if (a > maior_val)
{
maior_val = a;
strcpy (nome_max,nome);
}
if (a < menor_val)
{
menor_val = a;
strcpy (nome_men,nome);
}


printf("Mais Alto: %s\n\n",nome_max);
printf("Altura: %f\n\n",maior_val);
printf("Menor Altura: %s\n\n",nome_men);
printf("Altura: %f\n\n",menor_val);
system("PAUSE");
return EXIT_SUCCESS;
}

Desde já agradeço.

Postado

Boa Tarde,

Nanet, seu código estava correto, exceto por alguns detalhes que modifiquei.

Aparentemente não tem outros problemas.

Na parte do if você colocou 2 if's, mas nenhum else.

Apenas troquei pra else. Assim qualquer alternativa diferente daquela citada acima entrará na condição posterior.


main() {
int i;
char nome[20],nome_max[20],nome_men[20];
float a,maior_val,menor_val;
maior_val = 0;
menor_val = 0;
for (i = 0; i < 3; i++) {
printf("Informe o nome: ");
scanf("%s",&nome);
printf("\n\n");
printf("Informe a altura: ");
scanf("%f",&a);
printf("\n\n");

if (a > maior_val) {
maior_val = a;
strcpy (nome_max,nome);
}
else {
menor_val = a;
strcpy (nome_men,nome);
}
}

printf("Mais Alto: %s\n\n",nome_max);
printf("Altura: %f\n\n",maior_val);
printf("Menor Altura: %s\n\n",nome_men);
printf("Altura: %f\n\n",menor_val);
system("PAUSE");
}

Qualquer duvida poste!

Att

Postado

O código ainda está errado.

Inicializa menor e maior val como 0 por exemplo e faz por exemplo:


if(a > maior_val) {
//...
}
if(menor_val == 0 || a < menor_val) {
//...
}

Não é a melhor solução mas é a mais simples no contexto.

Att. regreth

Postado

Realmente.. desculpe sobre o código acima..

acabei esquecendo de fazer a outra comparação...

coloquei apenas o else direto...

colocando um else if ou como o amigo acima citou, dará certo =D

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...