else if 问题 算法问题
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
//输入日期,判断这一天是这一年的第几天
int year, month, day;
int sum = 0;
A: printf("输入日期:");
scanf("%d %d %d", &year, &month, &day);
if (month > 0 && month < 13 && day>0 && day < 32)
{
switch (month)
{
case 1: month = 31; sum = 0; break;
case 2: month = 28; sum = 31; break;
case 3: month = 31; sum = 59; break;
case 4: month = 30; sum = 90; break;
case 5: month = 31; sum = 120; break;
case 6: month = 30; sum = 151; break;
case 7: month = 31; sum = 181; break;
case 8: month = 31; sum = 212; break;
case 9: month = 30; sum = 243; break;
case 10: month = 31; sum = 273; break;
case 11: month = 30; sum = 304; break;
case 12: month = 31; sum = 334; break;
}
sum = sum + day;
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
{
sum = sum + 1;
}
printf("输入的日子是这年的第%d天", sum);
printf("\n");
}
//下面是问题
/*else
{
if ((month < 0 && month>12)|| (day < 0 && day>31));
{
printf("你输入的月份是%d格式不对\n", month);
}
if (day < 0 && day>31);
{
printf("你输入的日子是%d格式不对\n", day);
}
}*/
//用上面的代码可以运行 但是得不到想要的结果 上面的 不管 month day 只要有一个错就一起打印出
// 我的要的结果是 month 错了 就打印month day错了就打印day
//------------------------------------//
//用下面代码直接无视 不运行下面的 直接跳转 goto A
//请问 要达到我的效果要怎么写代码
//我的要的结果是 month 错了 就打印month day错了就打印day
else if(month < 0 && month>12)
{
printf("你输入的月份是%d格式不对\n", month);
}
else if (day < 0 && day>31)
{
printf("你输入的日子是%d格式不对\n", day);
}
//----------------//
goto A;
system("pause");
}