C语言的数组编程题,求大神解答?

 我来答
百度网友0e52a2e
2019-11-26
知道答主
回答量:10
采纳率:0%
帮助的人:3.2万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
int *array;
int n,i,j,z,s=0,q=0;
int result[10]={0}; //存放众数
printf("请输入数组元素数量\r\n");
printf("n=");
scanf("%d",&n);
array=(int *)malloc(n*sizeof(int));
printf("请输入数组元素\r\n");
printf("array=");
for(i=0;i<n;i++)
{
scanf("%d",&array[i]);
}

for(i=0;i<n;i++)
{
z=0;
for(j=i;j<n;j++) //计数出当前数据出现的次数
{
if(array[i]==array[j])
{
z++;
}
}
printf("z=%d\r\n",z);
if(z>=n/2) //如果当前元素的数量超过了数组大小的一半不用往下分析了
{
result[q]=array[i];
break;
}
else if(z>s)
{
memset(result,0,10);
q=0;
result[q]=array[i];
s=z;
}
else if(z==s)
{
result[++q]=array[i];
}
}

printf("Sample Output:\r\n");
if(((q+1)*s!=n)&&(q<5)) //按理来说10个数据众数应该不会超过4个,而前半部分避免了出现的次数相同
{
for(j=0;j<=q;j++) //打印出结果
{
printf("%d\r\n",result[j]);
}
}
else //如果没有就输出一个NO
printf("NO\r\n");
free(array);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友db864ff
2019-11-25 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.1万
采纳率:88%
帮助的人:3835万
展开全部
定义2个数组,
第一个一维数组iData[100],
记录输入的每个数字。
第二个二维数组iTongji[100][2],
……∥输入部分略,N是个数
for(i=0; i<N; i++) ∥初始化
iTongji[i][0]=iTongji[i][1]=0;
for(i=0,iOK=0; i<N; i++)
{
for(j=0 ,iFound=0; j<iOK; i++)
if(iData[i]==iTongji[j][0])
{ iTongji[j][1]++;
iFonud=1;
break;
}
if(iFound=0)
{ iTongji[iOK][0]=iData[i];
iTongji[iOK][1]=1;
iOK++;
}
}
/*iTongji中已统计出现的数字及个数
如果个数不全等,找出最大的个数
再依次判断哪个与最大个数相同,
输出相应数学*/
∥代码略
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cylz0703
2019-11-25 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:83%
帮助的人:4388万
展开全部
C语言实现从一个数组中寻找所有众数,参考代码如下:
#include "stdio.h”
int main()
{
int a[10],n,i,j,k=0;
int t[10],s[10]= {0},c[10]= {0};
int max;
scanf("%d", &n);
if(n<1||n>10)
return 0;
for(i=0; i<n; ++i)
scanf("%d", &a[i]);
for(i=0; i<n; ++i)
if(s[i]==0) {
s[i]=1;
t[k]=a[i];
c[k]++;
for(j=0; j<n; ++j)
if(s[j]==0&&a[i]==a[j]) {
s[j]=1;
c[k]++;
}
k++;
}
max=c[0];
for(i=1; i<k; ++i)
if(max<c[i])
max=c[i];
for(i=0,j=0; i<k; ++i)
if(c[i]==max)
++j;
if(j==k)
printf("NO");
else {
for(i=0; i<k; ++i)
if(c[i]==max)
printf("%d ",t[i]);
}
return 0;
}
更多追问追答
追答

运行结果如下:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gwt176v
2019-11-25 · TA获得超过135个赞
知道小有建树答主
回答量:240
采纳率:58%
帮助的人:92.1万
展开全部

更多追问追答
追问

这个是什么意思
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式