这是一个计算具有年,月和日的人的实际年龄的计划。
我一直收到错误,而且我不确定如何修复它。
#include <stdio.h>
int main(){
int dia,mes,anio;
int dia_n,mes_n, anio_n;
int edad_a,edad_m, edad_d;
printf("********Ingrese la fecha actual********\nDia:");
scanf("%d",&dia);
printf("Mes:");
scanf("%d", &mes);
printf("Anio:");
scanf("%d", &anio);
printf("********Ingrese la fecha de nacimiento********\nDia:");
scanf("%d",&dia_n);
printf("Mes:");
scanf("%d", &mes_n);
printf("Anio:");
scanf("%d", &anio_n);
if (dia_n>dia) && (mes_n>mes) || (mes>mes_n) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n){
edad_d=(dia - dia_n) +30;
}
else
if (dia>dia_n) || (dia_n==dia) && (mes>mes_n) || (mes_n>mes) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n){
edad_d=dia-dia_n;
}
if (dia>dia_n) || (dia==dia_n) && (mes>mes_n) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n) {
edad_m=mes-mes_n;
}
else
if (dia_n>dia)&&(mes_n>mes) || (mes==mes_n) && (anio>anio_n){
edad_m=(mes-mes_n) +11;
}
else
if (dia==dia_n) || (dia>dia_n) && (mes_n>mes) && (anio>anio_n){
edad_m=(mes-mes_n)+12;
}
else
if (dia_n>dia) && (mes>mes_n) && (anio>anio_n) || (anio==anio_n) {
edad_m=(mes-mes_n) -1;
}
if (dia>dia_n) || (dia==dia_n) && (mes>mes_n) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n) {
edad_a=anio-anio_n;}
else
if (dia_n>dia) && (mes_n>mes) || (mes>mes_n) || (mes==mes_n) && (anio>anio_n){
edad_a=(anio-anio_n)-1;
}
printf("********Su edad actual es********\n%d anios %d meses y %d dias", edad_a, edad_m, edad_d);
return 0;
}
22 19 C:\ Users \ Briansucho \ Desktop \ Sin Nombre2.c
[错误]预期标识符&#39;(&#39;令牌
答案 0 :(得分:1)
代码中的问题是您的第一个if
语句。您的代码声明:
if (dia_n>dia) && (mes_n>mes) || (mes>mes_n) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n){
这是错误的,因为所有这些条件都需要在最终()
中涵盖。我的意思是:
if ((dia_n>dia) && (mes_n>mes) || (mes>mes_n) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n)){
您只需要更多
()
。这就是你得到那个错误的原因。此外,您的代码不干净,并且有很多错误。我知道我应该这样做,但是这里的代码都清理完了没有错误。
#include <stdio.h>
int main(){
int dia,mes,anio;
int dia_n,mes_n, anio_n;
int edad_a,edad_m, edad_d;
printf("********Ingrese la fecha actual********\nDia:");
scanf("%d",&dia);
printf("Mes:");
scanf("%d", &mes);
printf("Anio:");
scanf("%d", &anio);
printf("********Ingrese la fecha de nacimiento********\nDia:");
scanf("%d",&dia_n);
printf("Mes:");
scanf("%d", &mes_n);
printf("Anio:");
scanf("%d", &anio_n);
if ((dia_n>dia) && (mes_n>mes) || (mes>mes_n) || (mes==mes_n) && (anio>anio_n) || (anio == anio_n)){
edad_d=(dia - dia_n) +30;
}
else if ((dia>dia_n) || (dia_n==dia) && (mes>mes_n) || (mes_n>mes) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n)){
edad_d=dia-dia_n;
}
if ((dia>dia_n) || (dia==dia_n) && (mes>mes_n) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n)) {
edad_m=mes-mes_n;
}
else if ((dia_n>dia)&&(mes_n>mes) || (mes==mes_n) && (anio>anio_n)){
edad_m=(mes-mes_n) +11;
}
else if ((dia==dia_n) || (dia>dia_n) && (mes_n>mes) && (anio>anio_n)){
edad_m=(mes-mes_n)+12;
}
else if ((dia_n>dia) && (mes>mes_n) && (anio>anio_n) || (anio==anio_n)) {
edad_m=(mes-mes_n) -1;
}
if ((dia>dia_n) || (dia==dia_n) && (mes>mes_n) || (mes==mes_n) && (anio>anio_n) || (anio==anio_n)) {
edad_a=anio-anio_n;}
else if ((dia_n>dia) && (mes_n>mes) || (mes>mes_n) || (mes==mes_n) && (anio>anio_n)){
edad_a=(anio-anio_n)-1;
}
printf("********Su edad actual es********\n%d anios %d meses y %d dias", edad_a, edad_m, edad_d);
return 0;
}