mierotom

Struct Simples - Moodle

May 9th, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cstring> //biblioteca
  4.  
  5. #define FS fixed << setprecision(2)
  6.  
  7. using namespace std; //usar biblioteca
  8.  
  9. struct ficha //criando a struct
  10. {
  11.     char nome[52];
  12.     int sexo;
  13.     char ecivil;
  14.     int idade;
  15. };
  16.  
  17. int main() //funcao principal
  18. {
  19.     ficha pessoa[51];
  20.     int i = 0, casada = 0, media = 0, oldage = -1;
  21.     char nomeold[52]; //declarando variaveis
  22.  
  23.     while(1)
  24.     {
  25.         cin.getline(pessoa[i].nome, 50);
  26.         if(!strcmp(pessoa[i].nome, "sair"))
  27.         {
  28.             break;
  29.         }
  30.  
  31.         do
  32.         {
  33.             cin >> pessoa[i].sexo;
  34.         }
  35.         while(!(pessoa[i].sexo == 1 || pessoa[i].sexo == 2));
  36.         cin.ignore();
  37.         do
  38.         {
  39.             cin >> pessoa[i].ecivil;
  40.         }
  41.         while(pessoa[i].ecivil != 'C' && pessoa[i].ecivil != 'S' && pessoa[i].ecivil != 'V' && pessoa[i].ecivil != 'D');
  42.  
  43.         cin >> pessoa[i].idade;
  44.         cin.ignore();
  45.  
  46.         i++;
  47.     } //entrada de dados
  48.  
  49.     for(int j = 0; j < i; j++)
  50.     {
  51.         if(pessoa[j].idade > oldage && pessoa[j].sexo == 1)
  52.         {
  53.             oldage = pessoa[j].idade;
  54.             strcpy(nomeold, pessoa[j].nome);
  55.         }
  56.  
  57.         media += pessoa[j].idade;
  58.  
  59.         if(pessoa[j].ecivil == 'C')
  60.         {
  61.             casada++;
  62.         }
  63.     } //processamento
  64.    
  65.     cout << "Porcentagem de pessoas casadas: ";
  66.     cout << FS << casada * 100.0 / i << "%" << endl;
  67.     cout << "Idade media da populacao: ";
  68.     cout << FS << media * 1.0 / i << " anos" << endl;
  69.     cout << "Nome e idade do homem mais velho: ";
  70.     cout << nomeold << " " << oldage << " anos" << endl;
  71.     //saida de dados
  72.  
  73.     return 0; //fim
  74. }
Add Comment
Please, Sign In to add comment