c语言acm水题
发布网友
发布时间:2024-01-07 19:59
我来回答
共4个回答
热心网友
时间:2024-07-26 23:32
这个不是很简单的么,
首先输入需要的实例数m
然后while(m--)
然后就是输入数组 a[..];
然后对数组拍个序就好了
最后输出数组中间数(这里做个判断如果是个数奇数,直接输出中间数,如果偶数,输出中间两个的平均数)
热心网友
时间:2024-07-26 23:35
给你简单翻译一下吧。第一行是一个整数2,表示你要求俩批数据的中间值。所以你的输出是2个数。然后这俩批数,其中一批有3个数,就是1,2,3(很明显中间值是2)。还有一批有4个整数,即2,1,4,3(很明显中间值是2.5)。
热心网友
时间:2024-07-26 23:36
你需要的是
将输入的数据存入数组
将数组升序排序
若输入的数据个数为奇数个, 那么取中间的元素即可
若为偶数个, 那么去中间两个元素的中间值
热心网友
时间:2024-07-26 23:39
#include <stdio.h>
void fun(double a[],int m){
int i,j,temp;
for(i=1;i<m;i++)
for (j=0; j<m-i; j++) {
if(a[j]>a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}//冒泡排序
int main(){
int n,m,i;
double a[111];
double ave;
while (~scanf("%d",&n)) {
while (n--) {
scanf("%d",&m);
for(i=0;i<m;i++){
scanf("%lf",&a[i]);
}
fun(a,m);
if(m%2==1){
ave=a[m/2];
}//是奇数
else{
ave=(a[m/2]+a[m/2-1])/2;
}//是偶数
if(int(ave)*1.0==ave)
printf("%d\n",(int)ave);//是整数
else
printf("%.1lf\n",ave);//是小数
}
}
}