Informática, perguntado por natthypoopy, 6 meses atrás

Preciso de ajuda, Linguagem C, me ajudem!!!
5. Escreva um programa que leia o nome, idade e altura de 5 pessoas e os armazene. O
programa deve calcular o Indice de Massa Corporal (IMC) para cada pessoa e exibir uma
lista com nome e o IMC calculado. Decida qual a melhor forma de armazenar a
informação e justifique.

Soluções para a tarefa

Respondido por joaopedrolemos
2

#include <stdio.h>

struct pessoa{

   char nome[50];

   int idade;

   float altura;

   float peso;

};

int main() {

   struct pessoa p[5];

   float imc[5];

   int i, j;

       for (i=0;i<5;i++){

           printf("---------PESSOA-%d---------\n",i+1);

           printf("NOME: "); fgets(p[i].nome, 50, stdin);

           fflush(stdin);

           printf("IDADE: "); scanf("%d",&p[i].idade); fflush(stdin);

           printf("ALTURA(m): "); scanf("%f",&p[i].altura);

           fflush(stdin);

           printf("PESO(Kg): "); scanf("%f",&p[i].peso);

           fflush(stdin);

           imc[i] = p[i].peso / (p[i].altura * p[i].altura);

       }

       

       for (j=0;j<5;j++){

           printf("---------PESSOA-%d---------\n",j+1);

           puts(p[i].nome);

           printf("IMC --> %.2f\n",imc[j]);

       }

   return 0;

}


joaopedrolemos: O método escolhido foi uma struct
natthypoopy: Obrigada!!!
natthypoopy: Moço, tá brigando a partir da segunda pessoa... Ele pula de nome para idade, tá ficando assim (Nome: Idade:...) Eu não tô sabendo ajeitar isso, o da pessoa 5 tá até pior, tá dando de botar só altura e peso. Além de que a lista final deveria conter os nomes com o valor do IMC, tá dando só como (Pessoa 1, Pessoa 2...) Me ajuda T-T Por favor
natthypoopy: Bugando** corrigindo pq saiu Brigando
natthypoopy: O Senhor usa qual programa? Estou usando o Replit, poderia testar isso que o senhor botou como resposta e dar um crtl C e crtl V para ver os bugs e me dizer onde consertar?
joaopedrolemos: Olá, no caso, em questão o erro acontece porque deve acontecer uma limpeza de buffer... Se a fflush() não der certo busque a __fpurge() da std_ext.h
natthypoopy: Eu não entendi nada
Perguntas interessantes