写了一个程序,用VS2019写的,为啥输出结果是负数呢
c语言吧
全部回复
仅看楼主
level 3
#include<stdio.h>
int main()
{
int i, y, m, d, day;
int a[12] = { 0,31,28,31,30,31,30,31,31,30,31,30 };
printf("请输入年-月-日:");
scanf_s("%d-%d-%d", &y, &m, &d);
while (m > 12 || d > 31)
{
printf("输入错误,请重新输入!\n");
printf("请输入年-月-日:");
scanf_s("%d-%d-%d", &y, &m, &d);
}
day = d;
for (i = 0;i < m;i++);
{
day = day + a[i];
}
if (y % 400 == 0 || y % 100 != 1 && y % 4 == 0)
{
day++;
}
printf("这一天是该年的第%d天\n", day);
return 0;
}
想了很久没想明白,求大佬指教,谢谢!
2020年12月04日 05点12分 1
level 12
2020-12-3 scanf什么格式就输什么格式
2020年12月04日 05点12分 2
我刚开始就是那么输入的,也是负数,然后这个是我尝试各种输入的时候截的图,没把最开始的截出来😷我的错
2020年12月04日 05点12分
level 1
没看见负数
2020年12月04日 06点12分 3
但是输出也不对啊,应该是第一天,我调试的时候也这样,有时不是负数,调试出来发现scanf_s输入的时候值就变负数了
2020年12月04日 08点12分
level 11
有任何问题都可以进来,大神免费解答问题
2020年12月04日 06点12分 4
level 12
2020年12月04日 08点12分 6
好的,谢谢大佬,我刚刚也修改好了,也加了闰年的限制条件,和你这个差不多,太粗心了,一直以为错误在前边,没看到for那里的分号,谢谢大佬
2020年12月04日 08点12分
level 1
for后面多了个分号
2020年12月06日 03点12分 7
1