题目:输入某年某月某日,判断这一天是这一年的第几天?

为什么我编的代码运行的结果是那样的?
2025-03-04 15:11:59
推荐回答(3个)
回答1:

scanf("%d,%d,%d", &year, &month, &day);

这个语句中格式控制是用逗号分隔,而你输入的时候是用空格分隔,所以出错。

两种办法
一,改源码
把scanf("%d,%d,%d", &year, &month, &day);
改成scanf("%d%d%d", &year, &month, &day);

二,匹配格式输入
输入的时候用逗号分隔,也就是2016,8,4

回答2:

Scanf的问题
你的代码里加着逗号呢,所以在运行时,输入的数据也要加逗号,就可以了。
如: 2016,8,4

回答3:

#include
int main()
{
    printf("input year,month and day\n");
    int y,m,d,n=0;
    scanf("%d %d %d",&y,&m,&d);
    int flag=0;
    if((y%4==0&&y%100!=0)||(y%400==0))
        flag=1;
    int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    if(flag==1)
        a[2]=29;
    int i;
    for(i=1;i    {
         n+=a[i];   
    }
    n+=d;
    printf("%d\n",n);
    return 0;
}