济南槐荫区人才中心:请教C语言编程高手

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 23:26:25
先谢谢了。
我想实现下列编程:例如,想把
1,2,3,7,8,4,9,20,14,
4,7,3,9,15,20,6,18,9,
1,5,8,3,7,12,14,15,17,
2,3,8,9,10,11,13,14,16,
。。。。。。。。。。(假设下面还有,此处省略)
。。。。。。。。。。(每列都是9个数)

这些数重复的找出来,并且按出现次数多少排列出来,如
3,4次
7,3次
8,3次等等
请用C语言编写程序

//以下算法不是最优化,但总算完成任务.
int A[Row][Col];//Col and Row是常数 Col=9
int a=Row,b=Col;
int *temp=new int[a*b];
int *num=new int[a*b];

for(int i=0;i<a*b;i++)
{
num[i]=0;
}
int c=0;
for(i=0;i<Row;i++)
{
for(int j=0;j<Col;j++) //双重循环完成大数组搜数
{
for(int k=0;k<=c;k++)//判断
{
if(temp[k]==A[i][j]) //临时数组有,则加1
num[k]=num[k]+1;
else
{
temp[c]=A[i][j]; //没有则添加到数组.
num[c]=num[c]+1;
c++;
}

}
}
}

设一个数组,下标为数字,每读到相应的数字,就将那个相应下标的数组元素加1