所以我有这个数组,我需要找到最小值,最大值和平均值。我已经想出了如何获得最大值,我的代码看起来是最低限度的,但它不起作用,所以我必须错过一些东西。我还需要找到输入数字的平均值。我所能找到的所有东西只有当你拥有数组集合的大小时才有效。我为数组设置了最大大小,但不会被用户输入填充。我一直在盯着和测试这几天,但仍然无法弄清楚。需要查找数组中的最大值,最小值,平均值数 - 没有声明大小
我知道对于一般的我需要这样的东西(在顶部加declartions),但我无法弄清楚如何得到它的工作:
for (i = 0; i < numOfGrades; i++) {
sum += grades[i];
}
avg = (double) sum/numOfGrades;
这里是其余我代码:
#include <stdio.h>
int main(){
int grades [100];
int i = 0;
int small, big, input;
printf("Enter a series of grades. When done, enter any number above 100.\n\n");
while (i <= 100) { //while loop to set maximum for array
printf("Enter grade:");
if (scanf("%d", &input) == 1) {
if (input >= 0 && input <=100) {
grades[i] = input; //if good, add to array
i++;
}
else {
printf("\n\nExiting entry.\n");
printf("\n\nGrades entered:\n\n");
i = i - 1;
break; //exiting loop
}
}
}
int x, y;
for (x = 0; x <= i; x++) {
printf("Grade: %d\n", grades[x]); //print array
}
big = small = grades[0];
for (y = 0; y < i; y++) {
if (grades[y] > big) {
big = grades[y];
}
else if (grades[y] < small) {
small = grades[y];
}
}
printf("Highest number : %d\n", big);
printf("Smallest number: %d\n", small);
return 0;
}
如果*初始化*一些值数组(这让我们说,不能有效的档次),你可以很容易地识别,当你到达“结束” ... – StoryTeller
也许1)'我<= 100' -->'I <100' 2)删除'I = I - 1;'。 3)'x <= i;' -->'x chux
对于你的平均代码,'numOfGrades'只是'while'循环中的'i'。看看我最终设置的是:用户输入的分数。您只需从0循环到该点即可获得输入成绩的总和。 – computerfreaker