为了账号安全,请及时绑定邮箱和手机立即绑定

求大神品鉴 简单的switch 练习,系统不过?

#include <stdio.h>
int  i, sum, days;    //声明全局变量
int main() 
{ 
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    /*
     * 请使用switch语句,if...else语句完成本题
     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
     * 小编还是希望大家独立完成哦~
     */
    
    for(i = 1; i <= month-1; i++){
        switch(i){
            case 1: 
                days = 31;
                break;
            case 3: 
                days = 31;
                break;
            case 5: 
                days = 31;
                break;
            case 7: 
                days = 31;
                break;
            case 8: 
                days = 31;
                break;
            case 10: 
                days = 31;
                break;
            case 12: 
                days = 31;
                break;
           
            case 2:
                if((year % 4 == 0 && year % 100 != 0) || year % 400 ==0){
                    days = 29;
                }else{
                    days = 28;
                }
                break;
             default :
                days = 30;
                break;
        }
        sum=sum+days;
    }
    sum+=day;
 printf("%d年%d月%d日是该年中的第%d天",year, month, day, sum);
 return 0;
 }


正在回答

2 回答

13行 int sum后 给sum一个初始值 sum=0;

0 回复 有任何疑惑可以回复我~
#1

你二爷爷的三哥哥 提问者

默认的的初始值不就应该是0 吗?要初始化?
2017-02-06 回复 有任何疑惑可以回复我~
#2

简一_ 回复 你二爷爷的三哥哥 提问者

全局变量 和 static 变量的默认初始化为0,而局部变量的初始值是随机的,而上面的sum是个局部变量哟~
2017-02-06 回复 有任何疑惑可以回复我~
#3

你二爷爷的三哥哥 提问者 回复 简一_

哦~~ 所以如果我吧那个变量声明写在main函数上面,就可以了吗?
2017-02-07 回复 有任何疑惑可以回复我~
#4

简一_ 回复 你二爷爷的三哥哥 提问者

你是不是改了你的代码了呀,现在的是正确的呀
2017-02-07 回复 有任何疑惑可以回复我~
#5

你二爷爷的三哥哥 提问者 回复 简一_

嗯,现在改成正确的了
2017-02-09 回复 有任何疑惑可以回复我~
查看2条回复

结尾缺少return 0;}

1 回复 有任何疑惑可以回复我~
#1

你二爷爷的三哥哥 提问者

有的,应该是没有复制全
2017-01-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神品鉴 简单的switch 练习,系统不过?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信