黑马程序员技术交流社区

标题: 这个题我是这样编辑的,但是一直运行出错,麻烦大家帮我找一下我错在哪里? [打印本页]

作者: 熊德玺    时间: 2015-11-4 21:39
标题: 这个题我是这样编辑的,但是一直运行出错,麻烦大家帮我找一下我错在哪里?
我是新人,很多不懂,来请教大家

这个题我是这样编辑的,但是一直运行出错,麻烦大家帮我找一下我错在哪里?麻烦了各位大神


/*
打印1 - 100中不能被7整除又不包含7的数,并统计个数

思路:首先要用while循环语句, ,定义i变量为1-100内的整数, 变量g为累加个数

*/

#include <stdio.h>

int main(){
   
    int i=1;
    int g=0;
   
    while (i<100) {
      
        if ((i%7==0)||(i%10==7)||(i/10==7)) {
            continue;
        }
        printf("%d\n",i);
        g++;
        i++;
      }
   
   
printf("个数为:%d\n",g);
   
    return 0;

}
作者: 相约玉米地    时间: 2015-11-4 21:46
大神啊,  完全看不懂啊。{:2_30:}
作者: 865393462    时间: 2015-11-4 22:08
i++放到if上面就行了
作者: wwf707542865    时间: 2015-11-4 22:11
i=7的时候,continue了,下面的i++就没办法执行,,i就一直等于7,然后一直死循环
作者: love阿木蛋花    时间: 2015-11-4 22:23
那么晚还在吃
作者: 熊德玺    时间: 2015-11-4 22:30
865393462 发表于 2015-11-4 22:08
i++放到if上面就行了

嗯嗯  多谢大神的指点 ,我试了  确实可以   
作者: 熊德玺    时间: 2015-11-4 22:31
wwf707542865 发表于 2015-11-4 22:11
i=7的时候,continue了,下面的i++就没办法执行,,i就一直等于7,然后一直死循环

对啊   我怎么就没想到呢 ,难怪我运行的时候,只能输出几个值,嗯嗯,现在懂了,多谢大神的指点
作者: poxiao    时间: 2015-11-4 22:34
楼主应该这么改
  1. #include <stdio.h>

  2. int main(){
  3.    
  4.     int i=0;
  5.     int g=0;
  6.    
  7.     while (i<100)
  8.     {
  9.       
  10.         i++;
  11.         if ((i%7==0)||(i%10==7)||(i/10==7))
  12.         {
  13.             continue;
  14.         }
  15.         printf("%d\n",i);
  16.         g++;
  17.         
  18.     }
  19.    
  20.     printf("个数为:%d\n",g);
  21.     return 0;
  22. }
复制代码


不然一旦满足if语句条件就会一直continue下去,会卡在7这个数一直不能执行下面的语句
作者: PlatoTu    时间: 2015-11-4 22:37
#include <stdio.h>
int main(){
   
    int i=1;
    int g=0;
   
    while (i<100) {
        
        if ((i%7==0)||(i%10==7)||(i/10==7)) {
            i++;
            continue;
        }
        printf("%d\t",i);
        g++;
        i++;
    }
   
   
    printf("个数为:%d\n",g);
   
    return 0;
   
}
作者: 熊德玺    时间: 2015-11-4 22:42
poxiao 发表于 2015-11-4 22:34
楼主应该这么改

不然一旦满足if语句条件就会一直continue下去,会卡在7这个数一直不能执行下面的语句 ...

好的  ,好的   多谢指点,对了  为什么你可以直接发一个代码编辑页面上了,这是怎样发上来的?
作者: 熊德玺    时间: 2015-11-5 18:46
熊德玺 发表于 2015-11-4 22:42
好的  ,好的   多谢指点,对了  为什么你可以直接发一个代码编辑页面上了,这是怎样发上来的? ...

好的  我试试  
作者: chensc    时间: 2015-11-5 20:37
学习学习!
作者: lixp    时间: 2015-11-5 20:52
不错不错,学习了
作者: 李凯666    时间: 2015-11-5 21:17
i++应该放在while循环的上面,放后面会造成while死循环
作者: 拐杖猫猫    时间: 2015-11-5 21:40
学习了。。
作者:   张恒宇    时间: 2015-11-5 22:10
本帖最后由   张恒宇 于 2015-11-5 22:34 编辑

#include<stdio.h>
int main(){
    int count =0;
    for (int a=1; a<=100; a++) {
        
            if (0==a%7) {
                  count++;
        
            if(7==a%10||7==a/10)
                    continue;
                printf("%d是能被7整除\n",a);

            }

    }printf("能整出7的总数是%d\n",count);
    return 0;
}自己写了一下看看对你有诶有帮助熊哥。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2