A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我是新人,很多不懂,来请教大家

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


/*
打印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;

}

评分

参与人数 1黑马币 +10 收起 理由
相约玉米地 + 10 神马都是浮云

查看全部评分

16 个回复

正序浏览
本帖最后由   张恒宇 于 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;
}自己写了一下看看对你有诶有帮助熊哥。
回复 使用道具 举报
学习了。。
回复 使用道具 举报
i++应该放在while循环的上面,放后面会造成while死循环
回复 使用道具 举报
lixp 中级黑马 2015-11-5 20:52:29
13#
不错不错,学习了
回复 使用道具 举报
学习学习!
回复 使用道具 举报
熊德玺 发表于 2015-11-4 22:42
好的  ,好的   多谢指点,对了  为什么你可以直接发一个代码编辑页面上了,这是怎样发上来的? ...

好的  我试试  
回复 使用道具 举报
poxiao 发表于 2015-11-4 22:34
楼主应该这么改

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

好的  ,好的   多谢指点,对了  为什么你可以直接发一个代码编辑页面上了,这是怎样发上来的?

点评

在编译代码的时候不要直接粘上去,在编辑框上面选〈〉这个符号然后把代码贴进去就行了,这个符号跟插入表情的那个按钮在同一行  发表于 2015-11-5 09:40
回复 使用道具 举报
#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;
   
}
回复 使用道具 举报
poxiao 中级黑马 2015-11-4 22:34:56
8#
楼主应该这么改
  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这个数一直不能执行下面的语句
回复 使用道具 举报
wwf707542865 发表于 2015-11-4 22:11
i=7的时候,continue了,下面的i++就没办法执行,,i就一直等于7,然后一直死循环

对啊   我怎么就没想到呢 ,难怪我运行的时候,只能输出几个值,嗯嗯,现在懂了,多谢大神的指点
回复 使用道具 举报
865393462 发表于 2015-11-4 22:08
i++放到if上面就行了

嗯嗯  多谢大神的指点 ,我试了  确实可以   
回复 使用道具 举报
那么晚还在吃
回复 使用道具 举报
i=7的时候,continue了,下面的i++就没办法执行,,i就一直等于7,然后一直死循环
回复 使用道具 举报
865393462 来自手机 中级黑马 2015-11-4 22:08:36
藤椅
i++放到if上面就行了
回复 使用道具 举报
大神啊,  完全看不懂啊。{:2_30:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马