Elabore um programa que receba a idade, peso, sexo e o estado civil de várias pessoas e imprima a
quantidade de pessoas casadas, solteiras, separadas e viúvas. Apresente a média de idade e de peso. O
algoritmo finaliza quando for informado o valor zero para.
Soluções para a tarefa
#include <stdio.h>
#include <locale.h> //include para a função setlocale
#include <stdlib.h> //para a função system
#include <stdio_ext.h> //para a função __fpurge
//estrutura para receber dados de diferentes tipos
struct pessoa {
int idade;
float peso;
char sexo;
char estCivil;
};
int main() {
setlocale(LC_ALL,"Portuguese"); //insere caractereses da lingua portuguesa
struct pessoa p[1000]; //struct com array
int i = 0;
int peC, peS, peD, peV, undefined;
peC = peS = peD = peV = undefined = 0;
float mIdade, mPeso;
mIdade = mPeso = 0;
char ans = 's';
do {
printf("------PESSOA-%d------\n",i+1);
printf("Idade: "); scanf("%d",&p[i].idade);
__fpurge(stdin); //limpeza de buffer, se voce usar Windows, troque a funcao por fflush()
mIdade+=p[i].idade;
printf("Peso: "); scanf("%f",&p[i].peso);
__fpurge(stdin);
mPeso+=p[i].peso;
printf("Sexo(m/f): "); scanf("%c",&p[i].sexo); __fpurge(stdin);
printf("Estado Civil(c/s/d/v): "); scanf("%c",&p[i].estCivil); __fpurge(stdin);
if (p[i].estCivil == 'c') peC++;
else if(p[i].estCivil == 's') peS++;
else if(p[i].estCivil == 'd') peD++;
else if(p[i].estCivil == 'v') peV++;
else undefined++;
printf("Adicionar mais uma pessoa?(s/n) ");
scanf("%c",&ans);
system ("clear"); //usa para limpar a tela, se usar Windows troque a funcao por system("cls")
i++;
} while (ans == 's');
printf("Quantidade de Pessoas Casadas: %d\n",peC);
printf("Quantidade de Pessoas Solteiras: %d\n",peS);
printf("Quantidade de pessoas Divorciadas: %d\n",peD);
printf("Quantidade de Pessoas Viúvas: %d\n",peV);
printf("Quantidade de Status Indefinido: %d\n",undefined);
mIdade/=i;
printf("Média de Idade: %.2f\n",mIdade);
mPeso/=i;
printf("Média de Peso: %.2f\n",mPeso);
return 0;
}