我已经创建了一个代码,可以计算输入分数的总和,平均值,最高和最低分数。我确保如果score[i]大于max,socre[i]成为max,如果小于min,socre[i]成为min。我认为我正确设置了初始值并正确设置了条件表达式,但是min的值不正确。没有语法错误。你能告诉我错误的地方吗?
#include <stdio.h>
int main(){
int score[5];
int sum = 0;
int i,j;
int max = score[0];
int min = score[0];
for(i=0; i<5; i++){
scanf(" %d", &score[i]);
sum += score[i];
if (max < score[i]){
max = score[i];
}
if (min > score[i]){
min = score[i];
}
}
printf("total = %d\nmean = %.2f\nmax = %d\nmin = %d\n%s\n", sum, (float)sum/5.0, max, min, sum<100 ? "Fail." : "Pass." );
return 0;
}
字符串
1条答案
按热度按时间oalqel3c1#
很好的尝试。你的问题下面的注解描述了未初始化变量的问题。
在不求助于
INT_MIN
及其兄弟的情况下,还有另一种方法可以实现您的目标:字符串
通过关注索引而不是值,只要第一个值存储到数组中,
min
和max
都是当前的。这种技术的一个优点(如果您稍后将对数组值做更多的处理)是数据类型不与
INT_MIN
& co绑定。如果代码更改为接受unsigned char
值,则INT_MIN
将是另一个维护点。最后一条评论。交换条件句:
型
只是读起来更好。