搜索
查看: 2114|回复: 28
打印 上一主题 下一主题

if的循环问题

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-15 10:26:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int i,a,b,c,d;
    printf("请输入一个三位数我会帮你求出个位十位百位的和\n");
    scanf("%d",&i);
    if(i<100 || i>999)
    {
    printf("请输入三位数");
    }
    a=i%100%10;
    b=i%100/10;
    c=i/100;
    d=a+b+c;
    printf("%d",d);
        system("pause");
        return 0;
}
怎样才能在红字那里做成循环    在不是3位数的情况下一直循环

最佳答案

查看完整内容

#include #include int main(){ int i,a,b,c,d,n; //多了个变量n来让while中断 do{ if(i999){ puts("请输入三位数:"); scanf("%d",&i); } else{ n=0; break; } }while(n=1); a=i%100%10; b=i%100/10; c=i/100; d=a+b+c; printf("和是:%d\n",d); system("pause"); return 0; } 用while或者do while ...
沙发
发表于 2015-8-15 10:26:48 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
int main(){
        int i,a,b,c,d,n; //多了个变量n来让while中断
       
    do{
            if(i<100 || i>999){
                    puts("请输入三位数:");
                    scanf("%d",&i);
                    }
            else{
                    n=0;
                    break;
            }
    }while(n=1);
   
           a=i%100%10;
    b=i%100/10;
    c=i/100;
    d=a+b+c;
    printf("和是:%d\n",d);
   
        system("pause");
    return 0;
}

用while或者do while
用do while可以少一条输入语句
板凳
 楼主| 发表于 2015-8-15 10:34:14 | 只看该作者
还有一个问题
书上127页
输入一个n位数范围在1-99 999 999求这个n位数每一位上的数之和。例如输入12输出3;输入234510输出15
地板
发表于 2015-8-15 12:12:09 | 只看该作者
求这个n位数每一位上的数之和其实隔壁帖子就有。。

#include <stdio.h>
#include <stdlib.h>
int nixu(int n){
    int g=0,t;
    t=n;
    while(t>0){
        g+=t%10;
        t/=10;
    }
    return g;
}

int main(){
        int n;
    scanf("%d",&n);
    printf("它的和是%d\n",nixu(n));
    system("pause");
    return 0;
}
这个也可以用while(1)来无限循环
5#
发表于 2015-8-15 18:03:20 | 只看该作者
本帖最后由 初学C 于 2015-8-15 18:06 编辑

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>//getch();函数的头文件
int main()
{
    int i,a,b,c,d;
    loop:;//用户的goto标签
    system("cls");
    printf("请输入一个三位数我会帮你求出个位十位百位的和\n");
    scanf("%d",&i);
    if(i<=99 || i>=1000)
    {
    printf("请输入三位数");
    getch();
    goto loop;//啊哈C没讲的goto语句
    }
    a=i%100%10;
    b=i%100/10;
    c=i/100;
    d=a+b+c;
    printf("%d",d);
    system("pause");
    return 0;
}
6#
发表于 2015-8-15 18:07:03 | 只看该作者
goto语句就是这么用的
7#
发表于 2015-8-15 18:09:20 | 只看该作者
直接改语句执行流程
不信的话,你试试
#include <stdio.h>
void main()
{
int a = 0;
abc:;
printf("你好,这是用goto语句造的循环!\n");
if(a<=10)
{
goto abc;
}
}
8#
发表于 2015-8-15 18:10:21 | 只看该作者
最后,欢迎你加入QQ群 C工作室
9#
发表于 2015-8-15 18:11:01 | 只看该作者
不讲goto是啊哈C的失职啊!
10#
发表于 2015-8-15 18:26:54 | 只看该作者
不太建议用goto,某方面来说它像毒品,你会用着用着就上瘾,然后最后害死自己。。
11#
发表于 2015-8-15 20:33:29 | 只看该作者
小榛鼠 发表于 2015-8-15 18:26
不太建议用goto,某方面来说它像毒品,你会用着用着就上瘾,然后最后害死自己。。

正解,坚决抵制goto
12#
发表于 2015-8-15 20:35:20 | 只看该作者
好的回复是对人的鼓励。[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
         int i,a,b,c,d;
     printf("请输入一个三位数我会帮你求出个位十位百位的和\n");
     scanf("%d",&i);
    if(i<100 || i>999)
    {
    printf("请输入三位数");
    main();
    }
     a=i%100%10;
     b=i%100/10;
     c=i/100;
     d=a+b+c;
     printf("%d",d);
         system("pause");
         return 0;
}[/mw_shl_code]
13#
 楼主| 发表于 2015-8-16 09:47:05 | 只看该作者
zhuzhu81998 发表于 2015-8-15 20:35
好的回复是对人的鼓励。[mw_shl_code=c,true]#include
#include
int main()

运行出来的结果不敢看
14#
 楼主| 发表于 2015-8-16 09:47:43 | 只看该作者
小榛鼠 发表于 2015-8-15 10:26
#include
#include
int main(){

do while书上还没学到·
15#
发表于 2015-8-16 09:50:56 | 只看该作者
Dear 发表于 2015-8-16 09:47
运行出来的结果不敢看

什么意思?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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