黑马程序员技术交流社区
标题:
关于一个习题的输出结果问题!
[打印本页]
作者:
dream静
时间:
2014-11-7 15:09
标题:
关于一个习题的输出结果问题!
//输入5个学生的成绩(保证分数在0~100)之间,算出平均分,最高分,最低分,然后输出
//计算平均值
int average(int array[],int n)
{
int sum = 0;
for (int i = 0; i <= n ; i++) {
sum += array[i];
}
return sum/5;
}
//计算最大值
int Max(int array[],int n)
{
int max = array[0];
for (int i = 0; i <= n; i++) {
if (array[i] > max) {
max = array[i];
}
}
return max;
}
//计算最小值
int low(int array[],int n){
int min =array[0];
for (int i = 0;i <= n;i++){
if(array[i]< min){
min = array[i];
}
}
return min;
}
int main(){
int score[5] = {-1,-1,-1,-1,-1};
for (int i = 0;i < 5;i++) {
while (score[i] < 0 || score[i] > 100) {
printf("请输入第%d个学生的成绩:\n",i+1);
scanf("%d",&score[i]);
}
}
int length = sizeof(score)/sizeof(int);
printf("%d\n",length);
int a = average(score, length);
int b = Max(score, length);
int c = low(score,length);
printf("平均分是%d,最高分是%d,最低分是%d\n",a,b,c);
return 0;
}
为什么最低分输出是对的,而最高分和平均分输出缺是错的啊
作者:
jy02305403
时间:
2014-11-7 16:13
我觉得三个结果都应该是错的吧!应该把三个算法过程中的for循环i <= n;改成i < n;你之前的算法都多循环了一次,已经测试过了,改了之后结果正常!
作者:
dream静
时间:
2014-11-7 16:50
谢谢了啊!SB了这都没看到
作者:
MacxChina
时间:
2014-11-7 21:41
dream静 发表于 2014-11-7 16:50
谢谢了啊!SB了这都没看到
不够仔细
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2