标题:如何修改这个编程中的错误
只看楼主
德云女孩小寒
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-4-23
 问题点数:0 回复次数:5 
如何修改这个编程中的错误
给出年月日,编写函数,计算该日是该年的第几天。
拜托各位大神帮忙看下这几个错误该如何修改
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);
}


搜索更多相关主题的帖子: 错误 int year sum || 
2019-04-23 09:57
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:0 
cpp(3) : error C2146: syntax error : missing ';' before identifier 'main' 写的很清楚

main 前面那行,漏了;

我行我乐
我的博客:
http://blog.yuccn. net
2019-05-04 12:22
Z1569412485
Rank: 1
等 级:新手上路
帖 子:23
专家分:5
注 册:2020-3-21
得分:0 
声明漏了分号
2020-03-22 00:01
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:0 
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编程中所谓安全无非就是个变量不初始化引起的问题,安全的方式无非也就是要初始化,修改一下教材那么难?
函数原形,可以略带而过,直接函数实现,就不会为这些浪费精力和时间.
2020-03-23 08:58
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
得分:0 
if((i==1)&&(year%4==0&&year%100!=0)||(year%400==0))
         month[i]=29;
     else if
         month[i]=28;
这里的第2个if需要些逻辑
2020-03-23 09:00
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
得分:0 
程序代码:
#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编辑过]

2020-06-06 21:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494356-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.782994 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved