m0_63105697 2022-01-16 21:16 采纳率: 40%
浏览 50

给定一个 k 位整数,请编写程序统计每种不同的个位数字出现的次数。不明白代码哪里有问题。

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
#include<stdio.h>
int main()
{
    int x,x1,a[10],i,n=0;
    scanf("%d",&x);
    for(i=0;i<10;i++)
    a[i]=0;x1=x;
    while(x1>=1)
    {
        x1/=10;
        n++;
    }x1=x;
    for(i=0;i<n;i++)
    {
        if(x1%10==0)a[0]++;
        if(x1%10==1)a[1]++;
        if(x1%10==2)a[2]++;
        if(x1%10==3)a[3]++;
        if(x1%10==4)a[4]++;
        if(x1%10==5)a[5]++;
        if(x1%10==6)a[6]++;
        if(x1%10==7)a[7]++;  
        if(x1%10==8)a[8]++;  
        if(x1%10==9)a[9]++;
        x1/=10;                                                                              
    }       
    for(i=0;i<10;i++)
    {
        if(a[i]!=0)
        printf("%d:%d\n",i,a[i]); 
    }
}

运行结果及报错内容

img

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-01-16 23:01
    关注

    注意题目数值范围:不超过1000位正整数,用int肯定不能表示所有的输入数据

    #include <stdio.h>
    
    #define N 1000
    
    int main()
    {
        char a[N];
        int c[10] = {};
        scanf("%s", a);
        const char *p = a;
        while (*p)
            c[*p++ - '0']++;
        for (int i = 0; i < 10; i++)
            if (c[i] > 0)
                printf("%d:%d\n", i, c[i]);
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月16日

悬赏问题

  • ¥60 如何批量获取json的url
  • ¥15 对法兰连接元件所承受的表面载荷等效转化为法兰开孔接触面上的等效表面载荷?
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 在win系统Django虚拟环境下载mysqlclient报错
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)