给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式:
对 N 中每一种不同的个位数字,以 D:M
的格式在一行中输出该位数字 D
及其在 N 中出现的次数 M
。要求按 D
的升序输出。
输入样例:
100311
输出样例:
0:2
1:3
3:1
AC代码
#include<stdio.h>
#include<string.h>
int main()
{
char a[10], n[1010];
gets(n);//——> gets()函数头文件:#include<stdio.h>
int len = strlen(n), count[10] = {};//——> strlen()函数头文件:#include<string.h>
a[0] = '0';
int i, j;
for(i = 1; i < 10; i++)
{
a[i] = a[0] + i;
}
for(i = 0; i < len; i++)
{
for(j = 0; j < 10; j++)
{
if(n[i] == a[j])
{
count[j]++;
break;
}
}
}
for(i = 0; i < 10; i++)
{
if(count[i] != 0)
{
printf("%d:%d\n", i, count[i]);
}
}
return 0;
}
说明:gets()获取到的是字符串
字符型数据是用单引号括起来的一个字符。例如:
'a'、'b'、'='、'+'、'?'
都是合法字符型数据。
在C语言中,字符型数据有以下特点:
- 字符型数据只能用单引号括起来,不能用双引号或其它括号。
- 字符型数据只能是单个字符,不能是字符串。
- 字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如'5'和5 是不同的。'5'是字符型数据,不能参与运算。