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;
}

苏ICP备18039385号