最高分是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]);
}