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