PAT L1-003 个位数统计

    xiaoxiao2021-03-25  138

    这是PAT第三题,题目是统计一个hin’大hin大的数 中各个数字出现的次数,比如100311,0出现2次,1出现3次,3出现1次。 对应输出如下结果: 0:2 1:3 3:1


    解题思路:有一点要注意,虽说题目说的是一个数字,但千万不要用int去存这个数!!long也不可以!!一个int能最大存21亿,也就10位数,long也只有19位,远不够所谓的大数。所以得用char数组存这个数。 然后就是逐个判断字符是那个数字,这里又有一点要注意,字符1是不等于数字1的!字符c转成数字一的方式是: int a = c-‘0’; 下面是本题答案,有不足之处还请大佬改正:

    #include<stdio.h> int main(){ char num[1000]; scanf("%s",num); int a[10]={0}; int i=0; for(;num[i]!='\0';i++){ int j; for(j=0;j<10;j++){ if(j==num[i]-'0'){ a[j]++; break; } } } for(i=0;i<10;i++){ if(a[i]!=0){ printf("%d:%d\n",i,a[i]); } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-7198.html

    最新回复(0)