-
编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,从而生成有n/2个元素组成的整数数列;统计该数列中不同整数各自出现的次数,并将统计结果保存到c指向的二维数组中。函数返回不同整数的个数。
#include <stdio.h>
int stat(int a[],int n,int c[][2])
{
int i;
int j;
int k;
int m;
for(i = 0,j = 0; i < n / 2; i++,j = j + 2)//鐢ㄧ浉閭荤殑鍏冪礌鐢熸垚涓€涓笉澶т簬涓や綅鐨勬暣鏁? {
c[i][0] = a[j] * 10 + a[j - 1];
c[i][1] = 1;//缁熻璇ュ厓绱犲嚭鐜扮殑娆℃暟
}
k = n / 2;
for(i = 0; i < k; i++)
{
for(j = i + 1; j < k; j++)
{
if(c[i][0] == c[j][0])
{
c[i][1]++;
for(m = n - 1; m > i; m--)//瀵绘壘閲嶅鐨勫厓绱犲苟灏嗕粬瑕嗙洊
{
c[m - 1][0] = c[m][0];
c[m - 1][1] = c[m][1];
}
k-- ;
}
}
}
return k;
}
int main()
{
int a[10];
int c[5][2];
int i;
int n;
for(i = 0; i < 10; i++)//杈撳叆鏁扮粍
{
scanf("%d",&a[i]);
}
n = stat(a,10,c);
for(i = 0; i < n; i++)//鎵撳嵃鍑虹幇涓嶅悓鐨勫厓绱犵殑娆℃暟
{
printf("%d:%d ",c[i][0],c[i][1]);
}
printf("\n");
return 0;
}