问题主要是输入一维数组的长度是不是要用malloc和free函数,但本人是不太了解怎么使用(已经在csdn上看了些资料)
还有下面的那个找重复数字,要是重复的数字不在一起怎么办
在一起的重复数字,说实话有点思路,但不通。。
求解答,谢谢!
C语言 望采纳
#include<stdio.h>
int main()
{
int i = 0;
int j = 1;
int n = 0;//定义输入变量n
scanf("%d",&n);//第一行输入n的值
int arr[n];//建立长度为n的数组arr,用于存放数列
int Temp[1000];//建立长度为1000的数组Temp[],用于存放每个数出现的次数
int size = sizeof(Temp)/sizeof(Temp[0]);//定义变量size,用于存放Temp[]数组的长度
int max = 0;//定义变量max,用于存放出现次数最多的数
int num = 0;//定义变量num,用于存放出现次数最多的数出现的次数
for(i = 0;i < n;i++)//给每一个arr[]数组单位赋值,循环n次
{
scanf("%d",&arr[i]);//赋值
}
for(i = 0;i < 1000;i++)//初始化Temp[]数组
{
Temp[i]=0;
}
for(i = 0;i < n;i++)//记录每个数出现的次数,循环n次
{
int t = arr[i];
Temp[t]++;
}
for(j = 1;j < n;j++)//将 每个元素的出现次数 与 出现次数最多的数的出现次数 进行比较
{
if(Temp[j] > num)//如果 此元素的出现次数 大于 出现次数最多的数的出现次数
{
max = j;//则将 此元素 定义为 出现次数最多的数
num = Temp[j];//且将 此元素的出现次数 定义为 出现次数最多的数的出现次数
}
}
printf("%d",max);//打印出现次数最多的数
}