-2
I’m trying to solve this problem...
Write a program in C language that uses a structure of the type record (struct) to store the data of 20 people. The registration are: name; day of birth; month of birth; year of birth birth. No other field should be created in the record. The program shall calculate and show the ages of persons and the name of the older person. The age shall be calculated from the day fields, month and year of birth. For this, use as reference the date current.
So far, that’s my code:
#include <stdio.h>
#include <stdlib.h>
#define pessoas 2
int main()
{int i, dias, meses, anos, calculo, diaatual=3, mesatual=9, anoatual=2020, maisvelha;
struct{
char nome [45];
int dia, mes, ano;
}data [pessoas];
printf("\nInsira os dados pessoais:");
printf("\n");
for (int i=0; i<pessoas; i++)
{
printf("\nNome da pessoa %d:\n", i+1);
scanf(" %[^\n]c",&data[i].nome);
setbuf(stdin, NULL);
printf("\nDia de nascimento da pessoa %d:\n", i+1);
scanf("%d",&data[i].dia);
printf("\nMês de nascimento da pessoa %d:\n", i+1);
scanf("%d", &data[i].mes);
printf("\nAno de nascimento da pessoa %d:\n", i+1);
scanf(" %d", &data[i].ano);}
calculo = 365*anoatual + 30*mesatual + diaatual - 365*data[i].ano - 30*data[i].mes - data[i].dia;
anos = calculo/365;
calculo = calculo%365;
meses = calculo/30;
calculo = calculo%30;
dias = calculo;
for (int i=0; i<pessoas; i++)
{
printf("\n%s tem %d anos, %d meses, e %d dias de idade\n", data[i].nome, anos, meses, dias);
if (maisvelha < anos){
printf("\n%s é a pessoa mais velha \n", data[i].nome);
}
}
return 0;
}
The program does not calculate the years correctly, and also does not indicate the oldest person... Help?