题目:
思路:
定义一个整型数组进行计数,其下标对应的数组值就是数字0~9相应出现的次数。
代码(C++版):
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int main() 6 { 7 string n; 8 cin >> n; 9 int cnt[10] = {0}; 10 for(int i = 0; i < n.length(); i++) 11 { 12 cnt[n.at(i) - '0']++; 13 } 14 for(int i = 0; i <= 9; i++) 15 { 16 if(cnt[i]) 17 cout << i << ":" << cnt[i] << endl; 18 } 19 return 0; 20 }
代码(C语言版):
1 #include <stdio.h> 2 #include <string.h> 3 4 int main() 5 { 6 char n[1005]; 7 scanf("%s",n); 8 int len = strlen(n); 9 int cnt[10] = {0}; 10 for(int i = 0; i < len; i++) 11 { 12 cnt[n[i] - '0']++; 13 } 14 for(int i = 0; i <= 9; i++) 15 { 16 if(cnt[i]) 17 printf("%d:%d\n", i, cnt[i]); 18 } 19 return 0; 20 }
总结:
灵活运用数组下标与其值的对应关系。