这是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’; 下面是本题答案,有不足之处还请大佬改正:
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