| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5909 人关注过本帖
标题:for无限循环中变量怎么重新赋值
只看楼主 加入收藏
無飞
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-6-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
for无限循环中变量怎么重新赋值
void main(){
    for(;;){//循环作用一直判断c—调用不同的方法
        system("cls");
        float x,y;
        char con;
        int c,m;//c控制调用的方法
        fun1(); /* 调用菜单函数 */
            printf("输入你想要进行的运算(1~11):"                );
            scanf("%d",&c);
            if(c==1||c==2||c==3||c==4){
                do{
                    printf("请输入两个数:");
                    scanf("%f%f",&x,&y);//float类型的两个变量
                    fun2(x,y,c); /* 调用加减乘除函数—传递参数 */
                    printf("是否继续运行Y\n");
                    con=getch();
                }while(con=='y'||con=='Y');
            }else if(c==5||c==6){
                char con;
                do{
                    if(c==5){
                        printf("请输入底数和指数:");
                        scanf("%f%f",&x,&y);
                    }else{
                        printf("请输入一个数:");
                        scanf("%f",&x);
                    }
                    if(x<0) printf(" 输入错误!");
                        else fun3(x,y,c); /* 调用乘方开方函数 */
                    printf("是否继续运行Y/N\n");
                    con=getch();   
                }while(con=='y'||con=='Y');
            }else if(c==7) {
                char con;
                int l;
                do{
                    printf("请输入一个数:");
                    scanf("%d", &m);
                    printf("请输入要转换的进制(2、8、16):");
                    scanf("%d",&l);
                    convert(m,l); /* 调用进制转换函数 */
                    printf("是否继续运行Y/N\n");
                    con=getch();   
                }while(con=='y'||con=='Y');
            }else if(c==8) {
                char con;
                do{
                    printf("请输入一个数:");
                    scanf("%f",&x);
                    fun4(x); /* 调用求绝对值函数 */
                    printf("是否继续运行Y/N\n");
                    con=getch();   
                }while(con=='y'||con=='Y');
            }else if(c==9){
                printf(" <<<<<<<<<<<拜拜!謝謝使用哈!>>>>>>>>>>> \n");
                system("pause");
                quit();
            }else{
                printf(" <<<<<<<<<<输入错误>>>>>>>>>>> \n");
               
            }
            getch();
    }   
}
这里边只有第一次输入错误就无限循环错误,怎么修改
搜索更多相关主题的帖子: system 
2016-06-16 10:12
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:7 
一直打印<<<<<<<<<<输入错误>>>>>>>>>>> 这一句?
2016-06-16 10:34
凌霄之誌
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:145
专家分:895
注 册:2016-6-14
收藏
得分:7 
再添加一个判断,或修改之前的限定语句,使输入的数字规定在  1~11 之间,要是超过 则返回

因为有悔,所以披星戴月;因为有梦,所以奋不顾身!!!
2016-06-16 11:00
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:7 
像这类循环,我会首选do……while,而不会用for。
接着用if(c>=1&&c<=9)将除c从1到9都包含进去。
你要明白else是和离它最近的一个if组成 if……else……。
而离它最近的一个if(c==9)这句,所以会一直出现输入错误就不奇怪了。

[此贴子已经被作者于2016-6-16 11:57编辑过]

2016-06-16 11:54
快速回复:for无限循环中变量怎么重新赋值
数据加载中...
 
   



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

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