A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zppeng 中级黑马   /  2014-6-18 10:18  /  1607 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

       小白零基础刚自学C语言,正在学习的路上,早上根据视频自己写的代码
>  输入一个整数month代表月份,根据月份输出对应的季节。
春季:345      夏季:678      秋季:91011        冬季:1212
代码如下:
#include <stdio.h>

int main()
{
    // 1.提示输入月份
    printf("请输入月份:\n");

       //2.接收输入月份
    int score;
    scanf("%d", & score);

       //3.判断季节
    if (score>=3 && score<=5)
    {
        printf("春季\n");
    }

    else if (score>=6 && score<=8)
    {
        printf("夏季\n");
    }

    else if (score>=9 && score<=11)
    {
        printf("秋季\n");
    }

    else
    {
        printf("冬季\n");
    }
      return 0;
}

各位大神,请问这个程序怎么进一步优化?


评分

参与人数 1技术分 +1 收起 理由
ios风痕 + 1

查看全部评分

1 个回复

倒序浏览
#include <stdio.h>

int main()
{
    // 1.提示输入月份
    printf("请输入月份:\n");
        
        //2.接收输入月份
    int score;
    scanf("%d", & score);
        
        //3.判断季节
        switch(score) {
        case 12:
        case 1:
        case 2:
                        printf("冬季\n");
                        break;
        case 3:
        case 4:
        case 5:
                        printf("春季\n");
                        break;
        case 6:
        case 7:
        case 8:
                        printf("夏季\n");
                        break;
        case 9:
        case 10:
        case 11:
                        printf("秋季\n");
                        break;
        default:
                        printf("请输入正确月份!\n");
                        break;
        }
        return 0;

}

由于switch的特性,只会取一次score的值进行判断,相比if的每次都取一次score做比较,在性能上会更高。
另:冬季不要直接在else里,如果用户输入大于12小于1的数应该提示错误。
自己的一点小建议

评分

参与人数 1技术分 +1 收起 理由
ios风痕 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马