用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; }