📄 a8_7.c
字号:
#include <stdio.h>
#define MAXSIZE 20
typedef struct {
int gt; //大于该记录的个数
int lt; //小于该记录的个数
}place;
typedef int mid_dif; //整个序列中比某个关键字大或小的记录个数
int Get_Mid(int a[ ],int n)//求一个序列的中值记录的位置
{
int i,j,mid,min_dif;
place b[MAXSIZE];
for(i=0;i<n;i++) //对每一个元素统计比它大和比它小的元素个数gt和lt
for(j=0;j<n;j++)
{
if(a[j]>a[i]) b[i].gt++;
else if(a[j]<a[i]) b[i].lt++;
}
mid=0;
min_dif=abs(b[0].gt-b[0].lt);
for(i=0;i<n;i++) //找出gt值与lt值最接近的元素,即为中值记录
if(abs(b[i].gt-b[i].lt)<min_dif) mid=i;
return mid;
}//Get_Mid
main()
{
int a[20],n,i;
printf("输入0跳出\n");
for (i=1;i<20;i++)
{
scanf("%d",&n);
if (n==0) break;
i=Get_Mid(a[20],n);
}
printf("%d",i);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -