bodyHealthy 2021-11-28 14:58 采纳率: 80%
浏览 31
已结题

C语言学习 在函数中给所创建的数组赋值时遇到的问题


//给出年、月、日,计算该日是该年的第几天。
int ymr(int year,int month,int day)
{
    int num[12];
    if(year/4==0){
        num[12]={31,29,31,30,31,30,31,31,30,31,30,31};
    }else{
        num[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    }
    int i,all=0;
    for(i=0;num[i]<month;i++){
        all+=num[i];
    }
    all+=day;
    printf("%d年%d月%d日是该年的第%d天",year,month,day,all);
    
}

img


请问它是要我在花括号前面加什么?(147行是现在的第7行,149行是现在的第9行)

  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-11-28 15:35
    关注
    //给出年、月、日,计算该日是该年的第几天。
    int ymr(int year,int month,int day)
    {
        int num[12]={31,28,31,30,31,30,31,31,30,31,30,31};
        if(year%4==0&&year%100!=0||year%400==0){
            num[2]=29;
        }
        int i,all=0;
        for(i=0;num[i]<month;i++){
            all+=num[i];
        }
        all+=day;
        printf("%d年%d月%d日是该年的第%d天",year,month,day,all);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    -Undefined_ 2021-11-28 15:36

    num数组定义后,num[12]就是指数组下标为12的那一项了

    回复
    bodyHealthy 回复 -Undefined_ 2021-11-29 10:31

    //给出年、月、日,计算该日是该年的第几天。 int ymr(int year,int month,int day) { if(year/4==0){ static int num[12]={31,29,31,30,31,30,31,31,30,31,30,31}; }else{ static int num[12]={31,28,31,30,31,30,31,31,30,31,30,31}; } int i,all=0; for(i=0;num[i]<month;i++){ all+=num[i]; } all+=day; printf("%d年%d月%d日是该年的第%d天",year,month,day,all); } 我用了static int 去定义num那个数组,为什么在后面for循环里面它说我没有定义sum这个数组?static定义的不是可以一直沿用的吗?

    回复
    bodyHealthy 回复 bodyHealthy 2021-11-29 10:33

    用static int去定义num这个数组,为什么在for里面它说我没有定义sum这个数组?static定义的不是可以一直沿用的吗?

    回复
    展开全部6条评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月12日
  • 已采纳回答 2月5日
  • 修改了问题 11月28日
  • 创建了问题 11月28日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部