编写函数,返回在一个整数组中出现次数最多的数及其出现次数。
来源:百度知道 编辑:UC知道 时间:2024/06/23 03:05:09
——好的再追加积分
#include<stdio.h>
#include<windows.h>
#include<time.h>
#define N 1000
int Fun(int a[],int n,int x[])
//a[]是数组 n是数组个数 x[]是要保存的最大数字的值,先排序,利用同一个数字是否变化来决定出现的次数
{
int i,j,t,check,maxtime,maxsuffix; //check是检查何时变化数字的 maxtime是最大次数 maxsuffix是最大的哪个数是
int value[N][2]={0};//一个数组,value[][0]保存当前的数值 value[][1]保存这个数字出现的次数
for(i=0;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} //排序
check=0;
/*
for(i=0;i<n;i++)
{
printf("%3d",a[i]);
if((i+1)%10==0) puts("\n");
}
*/
/////////////////////////////////算法:排序后数字是按次序存放,通过是否变化新数值来判断出现了多少次
for(i=0;i<n-1;i++)
{
if(a[i]!=a[i+1]) check=i; //要是这个数和下个数不相等 value数组进入下一位,出现新数字
value[check][0]=a[i]; //保存这个数的数值
value[check][1]++; //保存这个数的出现次数+1
}
////////////////////////////////////////////////////////////////////