星合桂木 2021-12-06 12:17 采纳率: 100%
浏览 48
已结题

用一个函数统计一个数中0~9出现次数

void main()
{
int TJ(long long x,int n);
long long num;
int a;
int k[10] = {0};
printf("输入一个整数:");
scanf_s("%lld", &num);
for (a = 0; a <= 9; a++)
{
k[a] = TJ(num, a);//用k[a]计数,表示num数中的数字a有多少个
}
for (a = 0; a <= 9; a++)
printf("数字%d共有 %d个\n", a, k[a]);
}
int TJ(long long x, int n)
{
int shu, r,gs=0;
for (shu = x;shu;shu/=10)
{
r = shu % 10;
if (r == n)gs++;
}
return(gs);
}

img

img


为什么第一种会出错?

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-12-06 12:21
    关注

    shu = x;
    shu是int类型,x是long long 类型。
    统计用long long 类型也有问题,数据大一点就越界了。
    直接用字符数组。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月14日
  • 已采纳回答 12月6日
  • 创建了问题 12月6日