|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
大佬们,可以帮我看看我这个代码中冒泡排序为啥没有生效吗,我感觉是作用域的问题,可是我不知道怎么处理
3,5
5.6 7.8 9.4 5.8 8.8
7.8 6.7 8.3 6.9 5.5
6.7 9.2 8.8 8.3 9.0
这个是样例输入
#include<stdio.h>
int main() {
int n, m, i, j, k, l, t, c[41] = { 0 }, p;
double b[41] = { 0.0 }, q = 0.0, a[21] = { 0.0 }, max = 0.0, min = 0.0;
char y;
scanf("%d", &n);
y = getchar();
scanf("%d", &m);
for (i = 1; i <= n; i++) {
max = 0.0;
min = 10.0;
for (j = 1; j <= m; j++) {//输入每组数据
scanf("%lf", &a[j]);
if (a[j] >= max)
{
max = a[j];
}
if (j == 1 || a[j] <= min)
{
min = a[j];
}
}
for (j = 1; j <= m; j++) {//求平均数
b[i] = b[i] + a[j];
}
b[i] = (b[i] - max - min) / (m - 2.0);
c[i] = i;
}
for (i = 1; i <= n - 1; i++) {
k = i;
for (l = k + 1; l <= m; l++) {
if (b[k] < b[l]) {
k = l;
}
}
if (k != i) {
q = b[k], b[k] = b[i], b[i] = q;
p = c[k], c[k] = c[i], c[i] = p;
}
}
for (i = 1; i <= n; i++) {
printf("第%d名:%d号选手,得分%.2lf\n", i, c[i], b[i]);
}
}
本帖最后由 jackz007 于 2022-10-7 20:34 编辑
应该是没有任何的改动,只是你贴出的代码没有进入代码框,丢失了一些代码成分,丢失部分我是凭借经验猜出来给补上去的。 #include<stdio.h>
int main() {
int n, m, i, j, k, l, t, c[41] = { 0 }, p;
double b[41] = { 0.0 }, q = 0.0, a[21] = { 0.0 }, max = 0.0, min = 0.0;
char y;
scanf("%d", &n);
y = getchar();
scanf("%d", &m);
for (i = 1; i <= n; i++) {
max = 0.0;
min = 10.0;
for (j = 1; j <= m; j++) {//输入每组数据
scanf("%lf", &a[j]);
if (a[j] >= max)
{
max = a[j];
}
if (j == 1 || a[j] <= min)
{
min = a[j] ;
}
}
for (j = 1 ; j <= m ; j++) {//求平均数
b[i] = b[i] + a[j];
}
b[i] = (b[i] - max - min) / (m - 2.0);
c[i] = i ;
}
for (i = 1; i <= n - 1; i++) {
k = i;
for (l = k + 1; l <= m; l++) {
if (b[k] < b[l]) {
k = l;
}
}
if (k != i) {
q = b[k], b[k] = b[i] , b[i] = q;
p = c[k], c[k] = c[i] , c[i] = p;
}
}
for (i = 1; i <= n; i++) {
printf("第%d名:%d号选手,得分%.2lf\n", i , c[i] , b[i]) ;
}
}
|
|