鱼C论坛

 找回密码
 立即注册
查看: 1260|回复: 7

语句循环有问题,循环不了

[复制链接]
发表于 2017-2-17 12:34:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zxsa 于 2018-7-18 21:43 编辑
#include <stdio.h>
#include <math.h>

void main()
{
        double a,b;
        char c,d;
        d = 'a';
        printf("这是一个四则运算小程序\n");
        printf("按照输入数字的先后顺序来运行四则运算。\n");
        while (d!='\n')
        {
                printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
                scanf("%lf%c%lf",&a,&c,&b);
                switch( c )
                {
                        case '+':
                                printf("%lf\n",a+b);
                                break;
                        case '-':
                                printf("%lf\n",a-b);
                                break;
                        case '*':
                                printf("%lf\n",a*b);
                                break;
                        case '/':
                                printf("%lf\n",a/b);
                                break;
                }
                printf("输入回车以结束!\n");
                scanf("%c",&d);
        }
}




请先不要管逻辑,我的想法就是类似做一个普通计算器,可以算数完毕就结束输入或继续算数下一个运算。
然,我循环不了语句,在VC++6.0编辑。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-17 13:44:34 | 显示全部楼层
本帖最后由 0mrli0 于 2017-2-17 13:47 编辑
break是跳出循环体
continue是跳出当前循环
把程序里面的break换成continue就好了
可以再看看这两个的区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-17 13:46:47 | 显示全部楼层
额, 我上面的continue打错了 continue!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 14:31:25 | 显示全部楼层
0mrli0 发表于 2017-2-17 13:46
额,  我上面的continue打错了 continue!!!!
#include <stdio.h>
#include <math.h>

void main()
{
        double a,b;
        char c,d;
        d = 'a';
        printf("这是一个四则运算小程序\n");
        printf("按照输入数字的先后顺序来运行四则运算。\n");
        while (d!='\n')
        {
                printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
                scanf("%lf%c%lf",&a,&c,&b);
                switch( c )
                {
                        case '+':
                                printf("%lf\n",a+b);
                                continue;
                        case '-':
                                printf("%lf\n",a-b);
                                continue;
                        case '*':
                                printf("%lf\n",a*b);
                                continue;
                        case '/':
                                printf("%lf\n",a/b);
                                continue;
                }
                printf("输入回车以结束!\n");
                scanf("%c",&d);
        }
}


换成这个continue之后确实是循环下去了,可是,它是一直循环了啊,我在它算数完毕之后一直按回城也结束不了啊
E15O(FMP_C}_LO]EFR}LWEY.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-17 15:01:49 | 显示全部楼层
那就是逻辑的问题了啊,看我改的
#include <stdio.h>
#include <math.h>

int main()
{
    double a,b;
    char c,d;
    while(1)
    {
        printf("是否运行四则运算小程序(y/n)\n");
        d = getchar();
        if(d==89 || d==121) //y或Y
        {
            printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
            scanf("%lf%c%lf",&a,&c,&b);
            switch( c )
            {
            case '+': printf("%lf\n",a+b); continue;
            case '-': printf("%lf\n",a-b); continue;
            case '*': printf("%lf\n",a*b); continue;
            case '/': printf("%lf\n",a/b); continue;
            default : printf("error"); continue;
            }
        }
        else if(d==78 || d==110)  //N或n
        {
            break;
        }
        else
        {
            printf("error input\n");
        }
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 15:20:03 | 显示全部楼层
0mrli0 发表于 2017-2-17 15:01
那就是逻辑的问题了啊,看我改的

这样是否有点显得不太简洁得体?
$M1C}MW9J5(~Z{M~3LVXEQW.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-17 15:48:33 | 显示全部楼层
zxsa 发表于 2017-2-17 15:20
这样是否有点显得不太简洁得体?

这就看你自己了啊,功能实现了啊。
另外你打了太多错的啊,  或者多打两个换行让行与行之间的距离大点,稀疏了就好了。还有就是中文换成英文就会显得清楚些。这些都是随心所欲的东西啊,觉得不好就改,觉得还行就不改,看你自己啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 16:06:33 | 显示全部楼层
0mrli0 发表于 2017-2-17 15:48
这就看你自己了啊,功能实现了啊。
另外你打了太多错的啊,  或者多打两个换行让行与行之间的距离大点, ...

好的,谢谢,我就自己再研究一下吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 22:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表