有人能看看我的代码并给我一些提示为什么它不能正常工作吗。只要是正整数,它就应该求出数字,然后计算它们的和,除以最大数,再乘以最小数。

#include <stdio.h>
int main () {

 int n, largest=0, smallest=0;
 float sum=0;
 scanf("%d", &n);
 while (n > 0) {
    scanf("%d", &n);
    if (n > largest) {
    largest = n;
    }
    if (n < smallest) {
    smallest = n;
    }
    sum += n;
 }
 sum = sum / largest * smallest;
 printf("%f\n", sum);

 return 0;
}

最佳答案

因为smallest从零开始,它永远不会改变,因为if (n < smallest)永远不会是真的。你需要:

 int smallest = INT_MAX;

或类似的。对于INT_MAX您需要:
#include <limits.h>

在上面。

关于c - C-总和并找到最大/最小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18251438/

10-11 23:23