错误代码如下:
#includeint main(void)
{int m,n,i,j,k,t,index;
double x;
scanf("%d",&m);
double b[m];
for(k=1;k<=m;k++)
{scanf("%d",&n);
int a[n];
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=0;iif(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
if(n%2==0)
b[k]=(a[n/2-1]+a[n/2])/2;
else b[k]=a[n/2];
}
x=b[0];index=0;
for(i=1;ix)
{x=b[i];
index=i;
}
printf("第%d组的疗效最好,中位数是%.2lf。\n",index+1,x);
return 0;
}
输入输出测试样例参考答案#include#define N 1000
int main(void)
{int m, n, i, j, k, t, index;
double x;
scanf("%d", &m); //m组数
double b[N]; //用来存入每组数的中位数
for (k = 0; k< m; k++)
{scanf("%d", &n); //每组的第一个数
int a[N];
for (i = 0; i< n; i++)
scanf("%d", &a[i]); //每组有效的数,存入数组a
for (i = 0; i< n - 1; i++) //对每组数进行升序排列,注意循环条件“ i if (a[i] >a[j])
{t = a[i]; a[i] = a[j]; a[j] = t;
}
}
if (n % 2 == 0) //如果是偶数,中位数为中间两数的平均值
b[k] = (a[n / 2 - 1] + a[n / 2]) / 2.0; //注意数组b为double型,不要直接÷整型数
else b[k] = a[n / 2];
}
x = b[0]; index = 0;
for (i = 1; i< m; i++) //简单的循环比较大中位数,同时获取组别
if (b[i] >x)
{ x = b[i];
index = i;
}
printf("第%d组的疗效最好,中位数是%.2lf。\n", index + 1, x);
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款