输入样例
2
4545 5656
7676 4544
输出样例:
0:3 1:1 2:3
0:4 1:2 2:1
#include<stdio.h>
/***
* 输入几组数据
* 每组数组两个正整数
* 然后对每组数据求和
* 求出求和后的数中每个数字出现的字数
***/
int main(){
int i=0,j=0,k=0;//循环变量
// 数据输入
int num=0;
scanf("%d",&num);
int a[num],b[num];
i = num;
while(i){
scanf("%d %d",&a[i-1],&b[i-1]);
i--;
}
// 求和
int sum[num];
for(i=num;i>=0;i--){
sum[i-1]=a[i-1]+b[i-1];
}
// 计算各个位置的数字
int count[num][7];
j=7;
int tem=0;
int n=1000000;
for(i=0;i<num;i++){
for(j;j>0;j--){
count[i][j-1] = sum[i]/n;
tem = sum[i]%n;
sum[i]=tem;
n = n/10;
}
n=1000000;
j=7;
}
//统计次数并打印
int cnt[10]={0};
for(i = 0; i<num;i++){
for(j =0;j<10;j++){
for(k=0;k<7;k++){
if(count[i][k]==j)
{
cnt[j]=cnt[j]+1;
}
}
// 等于个数零的数不打印
if(cnt[j]==0){
continue;
}
printf("%d:%d ",j,cnt[j]);
}
printf("\n");
for(n=0;n<10;n++){
cnt[n]=0;
}
}
return 0;
}
基于Linux16.04环境,gcc 5.4.0