请问大佬们,为什么我这个程序运行出来是空白结果,我检查了不知道错在哪,请指点谢谢
本帖最后由 lpx9393 于 2020-2-6 00:24 编辑#include <stdio.h>
int main()
{
int year1, month1, day1;
int year2, month2, day2;
long count = 0;
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("请输入你的生日(如2001-01-21):");
scanf("%d-%d-%d", &year1, &month1, &day1);
printf("请输入今天日期(如2020-02-05):");
scanf("%d-%d-%d", &year2, &month2, &day2);
while(year1 <= year2)
{
if(year1 % 400 == 0 || (year1 % 100 != 0 && year1 % 4 == 0))
{
days = 29;
}
while(month1 <= 12)
{
while(day1 <= days)
{
if(year1 == year2 && month1 == month2 && day1 == day2)
{
goto END;
}
day1++;
count++;
}
}
day1 = 1;
month1++;
}
month1 = 1;
year1++;
END:printf("你在这个世界总共生活了%d天\n", count);
return 0;
}
本帖最后由 lpx9393 于 2020-2-6 00:12 编辑
谢谢 本帖最后由 XiaoPaiShen 于 2020-2-6 04:31 编辑
不懂c 语言,但感觉应该这样写,你运行一下看看对不对,我不知 c 如何运行
#include <stdio.h>
int main()
{
int year1, month1, day1;
int year2, month2, day2;
long count = 0;
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("请输入你的生日(如2001-01-21):");
scanf("%d-%d-%d", &year1, &month1, &day1);
printf("请输入今天日期(如2020-02-05):");
scanf("%d-%d-%d", &year2, &month2, &day2);
while(year1 <= year2)
{
if(year1 % 400 == 0 || (year1 % 100 != 0 && year1 % 4 == 0))
{ days = 29; }
while(month1 <= 12)
{
while(day1 <= days)
{
if(year1 == year2 && month1 == month2 && day1 == day2)
{ goto END; }
day1++;
count++;
}
day1 = 1;
month1++;
}
month1 = 1;
year1++;
}
END:printf("你在这个世界总共生活了%d天\n", count);
return 0;
} 建议用安全的scanf(scanf_s) 34,35,37,38行的位置都错了,都应该在前一个while的括号里。 是31,32,34,35 本帖最后由 lpx9393 于 2020-2-6 09:45 编辑
XiaoPaiShen 发表于 2020-2-6 04:29
不懂c 语言,但感觉应该这样写,你运行一下看看对不对,我不知 c 如何运行
哈哈,谢谢,我找到我错在哪了,大括号太多看乱了,把条件写串了 召唤风云 发表于 2020-2-6 09:39
是31,32,34,35
是的,大括号太多看乱了{:10_281:}已经解决啦谢谢
页:
[1]