021 个位数统计 (15 分)
给定一个 位整数 (, , ),请编写程序统计每种不同的个位数字出现的次数。例如:给定 ,则有 2 个 0,3 个 1,和 1 个 3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 。
输出格式:
对 中每一种不同的个位数字,以 D:M
的格式在一行中输出该位数字 D
及其在 中出现的次数 M
。要求按 D
的升序输出。
输入样例:
100311
输出样例:
0:2
1:3
3:1
emmmmmm 参考1003题的的思路,太简单,直接写
#include <stdio.h> #include <math.h> #include <ctype.h> using namespace std; int main() { int i0=0,i1=0,i2=0,i3=0,i4=0,i5=0,i6=0,i7=0,i8=0,i9=0; char ch[10000];//能处理1000位以内的数 char *n=ch; //指针指向数组地址 scanf("%s",ch);//将字符串存入数组 //printf("%s\n", ch);//查看是否存入 do { //sum=sum+(*n-'0');//将字符串数组转成整型数组并相加 if(*n=='0') { i0++; } else if(*n=='1') { i1++; } else if(*n=='2') { i2++; } else if(*n=='3') { i3++; } else if(*n=='4') { i4++; } else if(*n=='5') { i5++; } else if(*n=='6') { i6++; } else if(*n=='7') { i7++; } else if(*n=='8') { i8++; } else if(*n=='9') { i9++; } n++;//指向下一个数字 }while(*n!='\0');//循环到结束符 //printf("%d%d%d%d\n",i0,i1,i2,i3); if(i0>=1) { printf("0:%d\n",i0); } if(i1>=1) { printf("1:%d\n",i1); } if(i2>=1) { printf("2:%d\n",i2); } if(i3>=1) { printf("3:%d\n",i3); } if(i4>=1) { printf("4:%d\n",i4); } if(i5>=1) { printf("5:%d\n",i5); } if(i6>=1) { printf("6:%d\n",i6); } if(i7>=1) { printf("7:%d\n",i7); } if(i8>=1) { printf("8:%d\n",i8); } if(i9>=1) { printf("9:%d\n",i9); } //printf("%d\n", sum);//查看是否相加成功 //abc(sum); return 0; }