搜索
查看: 1758|回复: 18
打印 上一主题 下一主题

break跳出循环的位置问题

[复制链接]
楼主
发表于 2015-8-17 17:53:31 | 显示全部楼层
本帖最后由 981013 于 2015-8-18 19:15 编辑

楼上居然一个人也没有注意到{:soso_e127:}
[mw_shl_code=c,true]while(n=1)[/mw_shl_code]
判断相等用==不是=,改成==之后,后面的n=0和break留下哪一个效果都是一样的
沙发
发表于 2015-8-19 10:05:34 | 显示全部楼层
Dear 发表于 2015-8-19 09:44
我改成了while(n==1)  去掉了break      留下了else n=0;
但输入的不是3位数仍然输出了一个错误的结果
...

n要初始化为1
板凳
发表于 2015-8-19 10:06:13 | 显示全部楼层
本帖最后由 981013 于 2015-8-19 10:08 编辑
Dear 发表于 2015-8-19 09:44
我改成了while(n==1)  去掉了break      留下了else n=0;
但输入的不是3位数仍然输出了一个错误的结果
...

像这样:[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,a,b,c,d,n; //多了个变量n来让while中断
    puts("请输入三位数:");
    scanf("%d",&i);
    n=1;//初始化操作
    while(n==1)
    {
        if(i<100 || i>999)
        {
            puts("请输入三位数:");
            scanf("%d",&i);
        }
        else
        {
            n=0;//当i符合条件时 n被赋值为0
        }
    }
    a=i%100%10;//到这里执行计算
    b=i%100/10;
    c=i/100;
    d=a+b+c;
    printf("和是:%d\n",d);
    system("pause");
    return 0;
}[/mw_shl_code]
地板
发表于 2015-8-19 10:06:32 | 显示全部楼层
Dear 发表于 2015-8-19 09:44
我改成了while(n==1)  去掉了break      留下了else n=0;
但输入的不是3位数仍然输出了一个错误的结果
...

n要初始化为1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表