注册 登录
编程论坛 VC++/MFC

如何修改这个编程中的错误

德云女孩小寒 发布于 2019-04-23 09:57, 2947 次点击
给出年月日,编写函数,计算该日是该年的第几天。
拜托各位大神帮忙看下这几个错误该如何修改
cpp(3) : warning C4518: 'int ' : storage-class or type specifier(s) unexpected here; ignored
cpp(3) : error C2146: syntax error : missing ';' before identifier 'main'
cpp(3) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
#include<stdio.h>
void date(int year ,int month,int day)
int main()
{ int year,month,day;
  scanf("%d,%d,%d",&year,&month,&day);
  date(year,month,day);
  return 0;
}
void date(int year,int month,int day)
{int month[12],sum,i;
 for(i=0;month<1||month>12&&month==2&&day>29||day<1||day>31;i++)
 {printf("Error!\n");
  scanf("%d,%d,%d",&year,&month,&day);
 }
for(i=0;i<12;i++)
    {if((i==1)&&(year%4==0&&year%100!=0)||(year%400==0))
         month[i]=29;
     else if
         month[i]=28;
     else if(i==0||i==2||i==4||i==6||i==7||i==9||i==11)
         month[i]=31;
     else
         month[i]=30;
    }
    for(i=0,sum=0;i<month-1;sum+=month[i++])
     sum+=day;
    printf("%d is No.%d day in%d\n",day,sum,year);
}


5 回复
#2
yuccn2019-05-04 12:22
cpp(3) : error C2146: syntax error : missing ';' before identifier 'main' 写的很清楚

main 前面那行,漏了;
#3
Z15694124852020-03-22 00:01
声明漏了分号
#4
xianfajushi2020-03-23 08:58
if((i==1)&&(year%4==0&&year%100!=0)||(year%400==0))=>if((i==2)&&(year%4==0&&year%100!=0)||(year%400==0))
if(i==0||i==2||i==4||i==6||i==7||i==9||i==11)这里的0代表虾米?1-7月都是31,8 10 12也是31
感叹国内教学还在采用旧的材料,早该修订为使用安全方式教学了.C编程中所谓安全无非就是个变量不初始化引起的问题,安全的方式无非也就是要初始化,修改一下教材那么难?
函数原形,可以略带而过,直接函数实现,就不会为这些浪费精力和时间.
#5
xianfajushi2020-03-23 09:00
if((i==1)&&(year%4==0&&year%100!=0)||(year%400==0))
         month[i]=29;
     else if
         month[i]=28;
这里的第2个if需要些逻辑
#6
逆风而前2020-06-06 21:35
程序代码:

#include<stdio.h>
    void date(int year,int month,int day);
    int main()
    {
        int year,month,day;
        printf("请输入年月日:");
        scanf("%d,%d,%d",&year,&month,&day);
        date(year,month,day);
        return 0;
    }
    void date(int year,int month,int day)
    {
         int month_new[12],sum,i;

         if((month<1||month>12)||((month==2)&&(day>29))||(day<1||day>31))
         {
            printf("数据错误!请重新运行程序.\n");
            //scanf("%d,%d,%d",&year,&month,&day);
            
         }
         else
         {
            //设置本年各月份天数.
            for(i=0;i<12;i++)
            {
                if((i==1)&&((year%4==0&&year%100!=0)||(year%400==0)))
                {
                    month_new[i]=29;
                }
                else if(i==1)
                {
                     month_new[i]=28;
                }
                else if(i==0||i==2||i==4||i==6||i==7||i==9||i==11)
                {
                     month_new[i]=31;
                }
                else
                {
                     month_new[i]=30;
                }
           }
           //进行天数的计算
           for(i=0,sum=0;i<month-1;i++)
           {
               sum+=month_new[i];               
           }
           sum=sum+day;
           printf("%d月%d日是%d年的第 %d 天 \n",month,day,year,sum);
   
         }
    }



[此贴子已经被作者于2020-6-6 21:38编辑过]

1