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

if的循环问题

[复制链接]
楼主
发表于 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 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)来无限循环
板凳
发表于 2015-8-15 18:26:54 | 显示全部楼层
不太建议用goto,某方面来说它像毒品,你会用着用着就上瘾,然后最后害死自己。。
地板
发表于 2015-8-16 11:13:20 | 显示全部楼层
Dear 发表于 2015-8-16 10:00
怎样用while做循环语句啊   do while不会

#include <stdio.h>
#include <stdlib.h>
int main(){
        int i,a,b,c,d,n; //多了个变量n来让while中断
       
        puts("请输入三位数:");
          scanf("%d",&i);
        while(n=1){
            if(i<100 || i>999){
                     puts("请输入三位数:");
                scanf("%d",&i);
                 }
                
         else{
                 n=0;
                  break;
          }
    }

    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只是无论如何都会先执行一次循环,然后再判断表达式;
如果括号只放1或其它整数默认为条件成立,放0为不成立,这个你应该懂吧



5#
发表于 2015-8-16 11:16:33 | 显示全部楼层
小榛鼠 发表于 2015-8-16 11:13
#include
#include
int main(){

while因为要先判断所以比do while多打一次
puts("请输入三位数:");
scanf("%d",&i);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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