用c求中间数
一个数列(可以有相等的元素,无序),求中间数。 如 1 4 6 6 7 8,则 6 为中间数,输出:6 6(两个 5);若没有中间数,如 1 2 3 4,则输出:-1(即无中间数)。
附上注释,小白可能看不懂
程序代码:#include<stdio.h>
int main(void)
{
int i,j,k,temp,n=0,a[100];
double temp2;
char ch;
for(i=0;i<100;++i) //输入数组,回车退出输入
{
scanf("%d%c",&a[i],&ch);
if(ch=='\n')
break;
}
for(j=0;j<i;++j) //从小到大排序
for(k=j+1;k<=i;++k)
if(a[k]<a[j])
{
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
if((i+1)%2==0) //偶数个数组元素
temp2=(a[(i-1)/2]+a[(i+1)/2])/2.0;
else //奇数个数组元素
temp2=a[(i+1)/2];
for(j=0;j<=i;++j) //在数组中找有没有和中值一样的元素
if(a[j]==temp2)
{
printf("%d ",a[j]);
n++; //计下找到的元素个数 并输出元素
}
if(!n) //没找到输出-1
printf("-1");
putchar(10);
return 0;
}