告诉我为啥使用“max,min,sum=arr[0];”这段代码

Posted

技术标签:

【中文标题】告诉我为啥使用“max,min,sum=arr[0];”这段代码【英文标题】:Tell me why use "max,min,sum=arr[0];" this code告诉我为什么使用“max,min,sum=arr[0];”这段代码 【发布时间】:2020-07-07 09:24:53 【问题描述】:

我想打印输入整数的最大值、最小值和总和 但我不明白为什么要使用这个代码(max,min,sum=arr[0];)

    #include<stdio.h>

int main(void)

    int arr[5];
    int max, min, sum, i;

    for (i = 0; i < 5; i++)
    
        printf("input: ");
        scanf("%d", &arr[i]);
    

    max = min = sum = arr[0];
    for (i = 1; i < 5; i++)
    
        sum += arr[i];
        if (max < arr[i])
            max = arr[i];
        if (min > arr[i])
            min = arr[i];
    

    printf("Maximum: %d \n", max);
    printf("Minimum: %d \n", min);
    printf("Total: %d \n", sum);
    return 0;


【问题讨论】:

您将这 3 个变量初始化为数组中的第一项。请注意,循环从 i = 1 开始。 从右到左计算:sum=arr[0],然后是min=sum(之前是arr[0]),然后...... 【参考方案1】:

代码将所有变量设置为等于数组的第一个元素。然后与其余部分进行比较以替换以防它们更大、更小或添加值(总和)

【讨论】:

以上是关于告诉我为啥使用“max,min,sum=arr[0];”这段代码的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Android Studio 告诉我使用 getSupportActionBar() 而不是 getActionBar()?

谁能告诉我为啥我们总是在机器学习中使用高斯分布?

为啥我的 Xcode 编译器告诉我我使用了值类型,即使我使用了类?

为啥 Windows 命令 shell 告诉我使用不同的命令,然后说该命令不存在?

谁能告诉我为啥我的过滤数组是空的?

为啥 OpenGL 告诉我我已经使用了 GL_STATIC_DRAW 而我已经指定了其他方式?