anhongkiusu 发表于 2020-11-15 19:41:52

编程求助

怎么用C语言求1~100中含有数字5的整数个数

jackz007 发表于 2020-11-15 19:49:17

#include <stdio.h>

main(void)
{
      int i , m                                                                   ;
      for(m = 0 , i = 5 ; i < 101 ; i += 5 , m ++) printf("%d\t%d\n" , m + 1 , i) ;
}
      编译、运行实况:
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
1       5
2       10
3       15
4       20
5       25
6       30
7       35
8       40
9       45
10      50
11      55
12      60
13      65
14      70
15      75
16      80
17      85
18      90
19      95
20      100

D:\00.Excise\C>

baige 发表于 2020-11-15 19:55:15

#include <stdio.h>

int main(void){
        int ans = 0;
        for(int i = 1; i <= 100; ++i){
                int temp = i;
                while(temp){
                        if(temp%10==5){
                                ++ans;
                                break;
                        }
                        temp /= 10;
                }
        }
        printf("%d",ans);
        return 0;
}

anhongkiusu 发表于 2020-11-15 19:55:25

jackz007 发表于 2020-11-15 19:49
编译、运行实况:

老哥这个我知道写,我想问的是在1~100之间,怎么求含有某个特定数字的整数个数。{:5_111:}

jackz007 发表于 2020-11-15 20:08:41

本帖最后由 jackz007 于 2020-11-15 20:16 编辑

anhongkiusu 发表于 2020-11-15 19:55
老哥这个我知道写,我想问的是在1~100之间,怎么求含有某个特定数字的整数个数。
      试试这个代码
#include <stdio.h>

main(void)
{
      int d , i , m                                                ;
      printf("input an integer : ")                              ;
      scanf("%d" , & d)                                          ;
      for(i = 1 ; i % d ; i ++)                                    ;
      for(m = 0 ; i < 101 ; i += d) printf("%d\t%d\n" , m + 1 , i) ;
}
      关键是找到第一个数,然后,只要继续循环累加,直到 100 就可以了。
      找第一个数用到了取余运算,a % b 就是取 a 除以 b 的余数,如果能整除,则 a % b 的值等于 0,否则为非 0。

风过无痕1989 发表于 2020-11-15 20:35:27

本帖最后由 风过无痕1989 于 2020-11-15 20:41 编辑

#include<stdio.h>

int main()
{
        int i, shi, ge, count = 1;
        for (i = 5;i <= 100;i++)
        {
                if (i == 5)
                        printf("%d ", i);
                shi = i / 10;
                ge = i % 10;
                if ((shi % 5 == 0 || ge % 5 == 0) && (i >= 10 && shi != 10 && ge != 0))
                {
                        printf("%d ", i);
                        count++;
                }
        }
        printf("\n");
        printf("1 ~ 100 内带数字 5 的数共有:%d 个\n", count);
}
页: [1]
查看完整版本: 编程求助