你今天学C了吗 发表于 2020-5-7 20:47:48

数字出现次数

写一个函数 int ft(int x, int y); 其功能是计算并返回数字y(0~9)是否在整数x中出现的次数; 在主程序中,调用该函数,输出正整数中出现各个数字的次数。 例如,输入 314139 输出如下: 0 2 0 2 1 0 0 0 0 1 依次表示数字0~9出现的次数。

输入格式:
输入一个正整数n

输出格式:
0~9各数字在n中出现的次数,数值之间空格分开(最后一个数值后面也有一个空格)。

输入样例:
314139

输出样例:
0 2 0 2 1 0 0 0 0 1


这个题应该怎么写?(不用数组的方法)

qiuyouzhi 发表于 2020-5-7 20:51:07

不用数组,就用switch-case呗,
然后设置9个变量,依次打印。

永恒的蓝色梦想 发表于 2020-5-7 20:56:42

根据你的描述,这程序用不着数组#include<stdio.h>

int ft(int x, int y) {
    int count = 0;

    while (x) {
      count += x % 10 == y;
      x /= 10;
    }

    return count;
}

int main() {
    int n;
    scanf("%d", &n);
   
    for (int i = 0; i < 10; i++) {
      printf("%d ", ft(n, i));
    }

    return 0;
}

你今天学C了吗 发表于 2020-5-7 21:06:46

永恒的蓝色梦想 发表于 2020-5-7 20:56
根据你的描述,这程序用不着数组

看懂了!感谢!
页: [1]
查看完整版本: 数字出现次数