|
发表于 2023-11-19 13:20:05
|
显示全部楼层
本楼为最佳答案
你的代码基本上是正确的,但是在输入成绩时有一个小错误。应该这样输入:
- scanf("%d %d %d",&a[i*3+0],&a[i*3+1],&a[i*3+2]);
复制代码
而不是:
- scanf("%d %d %d",&a[i*N+0],&a[i*N+1],&a[i*N+2]);
复制代码
另外,为了更好地表达数组的结构,你可以将 int a[1000] 改为 int a[1000][3],这样更清晰地表示每个学生有三门科目的成绩。
这是修改后的代码:
- #include <stdio.h>
- int main() {
- int N, i, j, temp = 0;
- int a[1000][3];
- int sum[1000];
- scanf("%d", &N);
- for (i = 0; i < N; i++) {
- scanf("%d %d %d", &a[i][0], &a[i][1], &a[i][2]);
- sum[i] = a[i][0] + a[i][1] + a[i][2];
- }
- for (i = 0; i < N - 1; i++) {
- for (j = 0; j < N - 1 - i; j++) {
- if (sum[j] < sum[j + 1]) {
- temp = sum[j + 1];
- sum[j + 1] = sum[j];
- sum[j] = temp;
- }
- }
- }
- for (j = 0; j < N; j++) {
- printf("%d\n", sum[j]);
- }
- return 0;
- }
复制代码
希望这次能够帮助到你。 |
|