| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2831 人关注过本帖
标题:求教switch的case 1后怎么结束程序运行
只看楼主 加入收藏
qq175101845
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2013-10-11
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:13 
求教switch的case 1后怎么结束程序运行
程序代码:
#include"stdio.h"
max_(int b[5])
{
    int i;
    int max=b[0];
    for(i=0;i<5;i++)
        if(max<b[i])
            max=b[i];
    printf("最大值为%d\n",max);
    printf("\n");
}
min_(int c[5])
{
    int i;
    int min=c[0];
    for(i=0;i<5;i++)
        if(min>c[i])
            min=c[i];
    printf("最小值为%d\n",min);
    printf("\n");
}
ave_(int d[5])
{
    int i;
    int sum=0;
    int ave;
    for(i=0;i<5;i++)
        sum+=d[i];
    ave=sum/i;
    printf("平均值为%d\n",ave);
    printf("\n");
}
pai_(int e[5])
{
    int i,j;
    int t;
    for(i=0;i<5;i++)
        for(j=0;j<i;j++)
            if(e[j]>e[j+1])
            {
                t=e[j];e[j]=e[j+1];e[j+1]=t;
            }
    printf("从小到大排序为:");
    for(i=0;i<5;i++)
        printf("%d ",e[i]);
    printf("\n\n");
}
main()
{
    int a[5];
    int i;
    int num;
    printf("请输入5门课程成绩:\n");
    for(i=0;i<5;i++)
        scanf("%d",&a[i]);
    for(;;)
    {
        printf("********************\n");
        printf("********************\n");
        printf("******1.最大值******\n");
        printf("******2.最小值******\n");
        printf("******3.平均值******\n");
        printf("******4.升序排列****\n");
        printf("******5.关闭程序****\n");
        printf("********************\n");
        printf("********************\n");
        printf("请选择1-5:");
        scanf("%d",&num);
        switch(num)
        {
        case 1:max_(a);break;
        case 2:min_(a);break;
        case 3:ave_(a);break;
        case 4:pai_(a);break;
        case 5:;
        }
    }
}

就是这样,我想在按下5之后,程序就停止运行了,这个该怎么在“case 5:”处写代码
搜索更多相关主题的帖子: 最大值 
2014-03-06 12:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
修改for的結束條件(不要用死循環),在case 5處設置for循環結束的條件成立。

授人以渔,不授人以鱼。
2014-03-06 12:51
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
收藏
得分:0 
(⊙o⊙)嗯

--整天敲那些破代码能找着媳妇儿吗。。。---
2014-03-06 13:01
qq175101845
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2013-10-11
收藏
得分:0 
谢谢啦  会了  我是这样改的
int j;
for(j=0;j<1;)
{
    ...
    case 5:j=1;
}
2014-03-06 13:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用qq175101845在2014-3-6 13:01:55的发言:

谢谢啦  会了  我是这样改的
int j;
for(j=0;j<1;)
{
    ...
    case 5:j=1;
}

對這種循環,用do或while都比for清晰!特別是這個,應用do {} while()。

程序代码:
int end_loop = 0;
do
{
    switch ()
    {
        case 5:
            end_loop = 1;
            break;
    }
} while (!end_loop);

如果你的編譯器支持,應用bool邏輯型聲明end_loop變量,從命名上就反映變量的功能,要養成用有意義變量名的好習慣!這個命名,一看就知道end_loop是幹什麽的,while()的判斷條件也很直觀,就是“非結束”。

[ 本帖最后由 TonyDeng 于 2014-3-6 13:12 编辑 ]

授人以渔,不授人以鱼。
2014-03-06 13:04
qq175101845
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2013-10-11
收藏
得分:0 
以下是引用TonyDeng在2014-3-6 13:04:14的发言:


對這種循環,用do或while都比for清晰!特別是這個,應用do {} while()。


嗯,可以试试,毕竟我对do while循环不是很习惯用
2014-03-06 13:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
再看看5樓

授人以渔,不授人以鱼。
2014-03-06 13:12
qq175101845
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2013-10-11
收藏
得分:0 
以下是引用TonyDeng在2014-3-6 13:12:53的发言:

再看看5樓

懂了,while是循环条件就是非0,一旦变为0,循环立即停止
2014-03-06 13:24
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
懂了吧?你case要結束循環,一般位置在末尾處,把檢測條件語句寫在附近,比跑老遠(switch一般會把屏幕撐長)回去頂頭看方便得多,邏輯也很順。寫代碼就如寫文章,要把語句弄得有條理,不是混得過就可以隨便下筆的,怎麽寫、寫成怎樣,都有各種各樣的考究,哪有單單是實現功能那麽簡單——這也是爲什麽叫“編程語言”的原因,它就是一門類自然語言,是表達人類邏輯的,最主要是給人閲讀,不是給機器看的,寫代碼首先照顧閲讀者。

[ 本帖最后由 TonyDeng 于 2014-3-6 13:30 编辑 ]

授人以渔,不授人以鱼。
2014-03-06 13:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
do……while()循環,無論結束條件如何,都會進入一次,而for()、while()都是進入之前就判斷條件的,有可能一次也進入不了(在這個問題上它其實比do多了一個多餘的步驟),這是do循環設計的用途,特別適合你這個需求。這不是某些書上所教,for()是大多數C程序員愛用的結構,就不顧一切地用的,應是在合適的地方使用合適的結構。

你後來改的那個for()循環,第三部分是空,那個分號很突兀,容易讓人誤解,難道你沒覺得?

[ 本帖最后由 TonyDeng 于 2014-3-6 13:40 编辑 ]

授人以渔,不授人以鱼。
2014-03-06 13:36
快速回复:求教switch的case 1后怎么结束程序运行
数据加载中...
 
   



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

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