C语言在openjudge上一直显示答案错误

我的代码:

#include <stdio.h>

int main()

{

int m,n;

scanf("%d",&m);

scanf("%d",&n);

struct information{

int num;

float score;

};

struct information a[200];

for(int i=0;i<m;i++)

{

scanf("%d",&a[i].num);

scanf("%f",&a[i].score);

}

printf("%d %g",a[n].num,a[n].score);

return 0;

}

题目:图片说明

回答

是排序后考k名的成绩,不是按照输入的顺序第k个的成绩

你的排序代码都没有

一样只能说碰巧了而已。

难道说你认为只要和例题对上了就可以了?那所有的问题都直接输出例题答案就是了,还写什么程序。

下面是冒泡排序参考回答

#include <stdio.h>

#include <string.h>

char num[100001][100]; // 学号

double s[100001]; // 成绩

int main() {

int n; // n:学生的人数(1<=n<=100)

int k; // k: 第k名学生的k(1<=k<=n)

scanf("%d%d", &n, &k);

for (int i=1; i<=n; i++) { // 输入n个学生的学号和成绩

scanf("%s", &num[i][0]);

scanf("%lf", &s[i]);

}

for (int i=1; i<=n; i++) { // 从大到小,选择排序

for (int j=i+1; j<=n; j++) {

if (s[i] < s[j]) { // 判断前面的数是否比后面的小

double d = s[i];

s[i] = s[j];

s[j] = d;

char tmp[100];

strcpy(tmp, num[i]);

strcpy(num[i], num[j]);

strcpy(num[j], tmp); // 当条件成立,学号与成绩一起进行交换

}

}

}

printf("%s ", num[k]);

printf("%g\n", s[k]);

return 0;

}

以上是 C语言在openjudge上一直显示答案错误 的全部内容, 来源链接: utcz.com/a/44673.html

回到顶部