c语言求一个数组的中位数(C语言找出两个序列的中位数,完整代码如下,帮忙看一下哪里出了问题呢)
本文目录
- C语言找出两个序列的中位数,完整代码如下,帮忙看一下哪里出了问题呢
- C语言 任意输入5个数字 输出5个数的中间数
- C语言题目“给出互不相等的五个正整数a,b,c,d,e,求他们的中位数x,平均数y“,我的代码错在哪里
- c语言里当数组个数为偶数时,这个数组的中位数是什么
- 用C语言取中间值
- C语言 一组有序递增数组中求所有正数的中位数
- c语言递归计算数组中位数
- C语言 如何编个程序求一组数的中位数和众数
- c语言,求一个数组中,中间值的大小怎么做
C语言找出两个序列的中位数,完整代码如下,帮忙看一下哪里出了问题呢
*****是数组data的长度,等于5,*****=3,mid=*****+*****/2=5+3/2=6
查找中位数if (k = mid )把mid 的值赋给k,此时k =6就执行return *****整个函数调用就结束。
C语言 任意输入5个数字 输出5个数的中间数
#include "*****"
#define N 5
int main()
{
int i,j,tmp,a;
for (i=0;i《N;i++)
{
scanf("%d",&a);
}
for (i=0;i《N-1;i++)
{
for (j=0;j《N-i-1;j++)
{
if (a)
{
tmp=a;
a;
a=tmp;
}
}
}
printf("%d ",a);
return 0;
}
C语言题目“给出互不相等的五个正整数a,b,c,d,e,求他们的中位数x,平均数y“,我的代码错在哪里
看你的代码好累呀。。。说一下我的思路吧,求平均数可以这样
int sum = 0;
int ave = 0;
sum = a+b+c+d+e;
ave = sum / 5;
求中位数可以这样
int max = 0;
int min = 0;
int array = {0};
int buffer = 0;
array = e;
for(char i = 0;i《5;i++)
{
if(max 《 array)
{
max = array;
}
if(min 》 array)
{
min = array;
}
}
int max1= 0;
int min1= 0;
for(char i = 0;i《5;i++)
{
if(array ==min)
contine;
if(max1 《 array)
{
max1 = array;
}
if(min1 》 array)
{
min1 = array;
}
}
int result = 0;
for(char i = 0;i《5;i++)
{
if(array ==min1)
contine;
return array;
}
c语言里当数组个数为偶数时,这个数组的中位数是什么
数组按大小顺序排,当为奇数时,处于中间位置的数据值即为中位数;当偶数时,处于中间位置的2个数据值的平均数。
用C语言取中间值
把各个数放在数组中,然后进行排序(升序、降序均可),根据下标就可取得中间值。
int a = {2,5,7,8,12,16,78,88};
int n = sizeof(a)/sizeof(a);
int mid = a; // 这就是中间值
C语言 一组有序递增数组中求所有正数的中位数
#include《*****》
void main()
{
int e=0,j, temp;
FILE *fp;
int i;
int a;
if((fp=fopen("*****","w"))==NULL)
{
printf("1");
printf("can’t open the file!\n");
return ;
}
for(i=0;i《5;i++)
{
fprintf(fp, "%d ",a);
}
fclose(fp);
if((fp=fopen("*****","r"))==NULL)
{
printf("can’t open the file!\n");
return ;
}
for(i=0;i《5;i++)
{
fscanf(fp, "%d", &b);
if(b;
printf("%d ", b);
}
for(i=0;i《e-1;i++)
{
for(j=0;j《e-i-1;j++)
{
if(c)
{
temp=c;
c;
c=temp;
}
}
}
if(e%2==1)
printf("%d\n",c );
else printf("%.2f\n", (c)****/2);
fclose (fp);
}
就做到这里吧,虽然难看了点,但大致的轮廓还是有的,建议把取中位数变成一个自定义的函数就跟完美了,还有我用的都是整数。
c语言递归计算数组中位数
这用的着递归吗???
直接
#include《*****》
int main()
{int a;
int i,n;
float c;
for(i=0,n=0;;i++)
{scanf("%d",&a);
n++;
if(getchar()==’\n’)break;}
c=a;
if(n%2==1)
printf("%d\n",a);//数组数据是奇数的情况
else
printf("%.2f\n",c/2);//数组数据是偶数的情况
}
奇数使这种情况
偶数是这种情况
C语言 如何编个程序求一组数的中位数和众数
数组排序可以不用指针。你把数组定义成全局变量,比如说a;然后调用我给你的快排程序就行了,这个程序可以背下来,很有用的。
void
qs(int
L,int
R)
{
int
i=L,j=R,mid=a,t;
while(i《j)
{
while(a《mid)
++i;
while(a》mid)
--j;
if(i《=j)
{
t=a;
a;
a=t;
++i;
--j;
}
}
if(i《R)
qs(i,R);
if(L《j)
qs(L,j);
}
排好序之后找中位数就好办了。
至于众数,我觉得最好的方法是用bfs。但这个对你来说难度有点大,我就给你写一个hash表吧。还用上面的那个数组,且假定数组a中的最大值不超过10000,若超过,你把下面这个hash数组的范围扩大就行了。
另外,设a中有n个元素,a从1开始计数(若从0开始,你改一下就好了)
int
hash={0};
int
i,Max=0;
for(i=1;
i《=n;
++i)
{
++hash;
if(hash)
Max=a;
}
最后输出Max就好了
刚t415422663倒是提醒我了,如果要判断众数有多个,我可以把上面的程序稍改一下
int
hash={0};
int
i,Max=-1;/*注意,这里把Max赋值为-1是为了防止数组a的元素个数为0时所有数据都被输出*/
for(i=1;
i《=n;
++i)
{
++hash;
if(hash)
Max=hash;
}
//10000是数组a中可能出现的最大值,这个你可以自己改的
for(i=1;
i《=10000;
++i)
if(hash==Max)
printf("%d\n",i);
c语言,求一个数组中,中间值的大小怎么做
楼主,这道题我的思路是先排序,然后输出排序后中间元素的值
一楼的思路也不错,可以参考
祝楼主进步~
程序如下:
#include 《*****》
#include 《*****》
#define N 10
int Search(double a);
void main()
{
double a;
int i,mid;
printf("请输入数据:");
for(i=0;i《N;i++)
scanf("%lf",&a);
mid=Search(a);
printf("中间值为:%.12f\n",a);
}
int Search(double a)
{
int i,j,flag;
double tmp;
for(i=N-1;i》=0;i--)
{
flag=0;
for(j=0;j《i;j++)
{
if(fabs(a)》1e-10)
{
tmp=a;
a;
a=tmp;
flag++;
}
}
if(flag==0) break;
}
if(N%2)
return N/2+1;
else
return N/2;
}
-------------------------
修改宏定义的N值,可以改变数组大小
更多文章:
chimney(这英文单词 chimney / dictionary 怎么读)
2026年4月30日 18:40
excel中len函数的用法(Excel LEN在公式里是什么意思)
2026年4月30日 18:20
源代码电影的原理(《源代码》这部电影里面的逆行火车上方怎么没有中国铁路那种电线是靠什么制动的呢是内燃机车么)
2026年4月30日 17:40
析构函数可以有返回值吗(为析构函数指定返回类型会导致什么结果)
2026年4月30日 17:20
指针函数类型有哪些(试分析结构描述中,指针函数的说明与运用特点)
2026年4月30日 17:00
Oracle数据库中文件加密详解?如何给access2016数据库加密
2026年4月30日 16:40
c语言求一个数组的中位数(C语言找出两个序列的中位数,完整代码如下,帮忙看一下哪里出了问题呢)
2026年4月30日 16:20





