数组—C语言问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 20:52:01
#include "stdio.h"
#define n 5
main()
{
int score[n],i,max,min;
for(i=0;i<=n;i++)
{
printf("请输入学生成绩:");
scanf("%d",&score[i]);
}
max=score[0];
min=score[1];
for(i=0;i<=n;i++)
{
if(score[i]>max)
max=score[i];
}
for(i=0;i<=n;i++)
{
if(score[i]<min)
min=score[i];
}printf("%d %d",max,min);
}
这个程序是输入6个学生成绩,然后输出最高分,最低分。为什么每次运行,最高分和最低分都是在前5个中取呢?就算第6个成绩是最高分或最低分,也会输出前5个中的最大和最小,到底错在哪呢?哪位达人能告诉我?
如果按一楼的说法,那不是要输7个数据,一共6个数据啊~

囧,你的数组只有5个元素
#define n 5 改成#define n 6
然后把所有i<=n改成i<n
===============================
数组下标是从0到n-1的,而不是0到n,i<n就是只执行到i=n-1,当i=n时就不执行了,所以n改为6、i<=n改成i<n就是从0到5总共6个数据。

int score[n] 定义错了 有6个人,应该是 int score[6], 引用时下标才是重0开始

int score[n+1]

你不应该等于n,应该是小于n这样就可以了吧