#include<stdio.h>
#define max1 3//设置二维数组大小
#define max2 3
int main()
{
int list[max1][max2];
int count[max1*max2][2];//放置不同元素和次数,行数为list的元素个数
int i,j,m;
int busy,flag;//不同元素个数
for(i=0;i<max1*max2;i++)
count[i][1]=0;
//次数置零
for(i=0;i<max1;i++)
//输入
{
for(j=0;j<max2;j++)
{
printf("Enter list[%d][%d]",i,j);
scanf("%d",&list[i][j]);
}
}
printf("array list:\n");
//输出
for(i=0;i<max1;i++)
{
for(j=0;j<max2;j++)
printf("%5d",list[i][j]);
printf("\n");
}
for(i=0;i<max1;i++)//双循环遍历二维数组
{
for(j=0;j<max2;j++)
{
if(i==0&&j==0)//给count第一行赋初值
{
count[0][0]=list[0][0];//初值
count[0][1]=1;//一次
flag=1;//一个元素
continue;
}
for(m=0;m<flag;m++)//遍历数组count已有的元素
{
if(list[i][j]==count[m][0])//如果元素已在count里
{
count[m][1]++;//次数加一
break;
}
}
if(m==flag)//如果元素不在count里
{
count[m][0]=list[i][j];//向已有元素后面添加新元素
count[m][1]++;//次数加一
flag++;//元素个数加一
}
}
}
for(i=0;i<flag;i++)//打印个元素和次数
printf("%d : %d times\n",count[i][0],count[i][1]);
busy=0;//先让第一个元素为频率最大的数
for(i=1;i<flag;i++)//循环遍历
if(
count[busy][1]<count[i][1])
busy=i;//找到频率最大的数的一个位置
printf("Maximum number : ");
for(i=0;i<flag;i++)
if(count[i][1]==count[busy][1])//打印频率最大的数
printf("%d ",count[i][0]);
printf("\n");
}
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
[
本帖最后由 小小战士 于 2012-12-15 14:52 编辑 ]