运用数组打印最高分及学号

img

img


求指点一下哪里出错了!出来的结果总是很长一串负数。
提问居然还有字数要求的吗

最高分是max,不是a[n],你应该记录最大值的序号,而不是值,否则学号你找不到啊

max = 1;
for(n=3;n<300;n+=2)
    if(a[n] > a[max])
       max = n;
printf("%d%d",a[max],a[max-1]);

最后n肯定大于等于300了 a[n]越界了 你打印最大值不应该是打印max的值吗 还有你这个程序逻辑上还有很多不对的地方

把学号和成绩分开记录比较清晰,你看下是这个意思不,N宏定义表示人数

#include <stdio.h>

#define N 10
int main()
{
    int i, Max, MaxIndex;
    int num[N] = {0};
    int score[N] = {0};
    
    for(i = 0;i < N;i++)
    {
        printf("Input No.%d Student Num:\n", i);
        scanf("%d", &num[i]);
        printf("Input No.%d Student Score:\n", i);
        scanf("%d", &score[i]);
    }

    Max = score[0];
    MaxIndex = 0;

    for(i = 1; i < N; i++)
    {
        if(score[i] > Max)
        {
            Max = score[i];
            MaxIndex = i;
        }
    }

    printf("Best One Num And Score is\n%d\n%d\n", num[MaxIndex], score[MaxIndex]);
}