c++ - 查找数组中的最小值(我的代码有什么问题?)

标签 c++ arrays loops for-loop

这是我的 C++ 入门类(class)。我们目前正在做数组,我正在尝试为数组的每一列找到最小值。这是我所拥有的:

#include <iostream>
using namespace std;    

int main(){
int grade[4][30] = {{76, 70, 80, 90, 100, 83, 61, 63, 64, 65, 97, 69, 70, 79,60, 70, 80, 90, 100, 83, 61, 63, 99, 98, 66, 69, 70, 79},
                    {74, 70, 80, 90,60, 61, 93, 88, 73, 65, 91, 69, 70, 79, 60, 70, 80, 90, 60, 83, 61, 63, 64, 65, 66, 69, 67, 74},
                    {72, 70, 80, 90, 99, 84, 62, 63, 99, 65, 66, 69, 70, 79, 60, 70, 80, 90, 99, 83, 61, 63, 64, 65, 66, 69, 70, 77},
                    {69, 70, 80, 90, 60, 61, 86, 63, 97, 97, 66, 69, 70, 79, 97, 70, 80, 90, 88, 83, 88, 63, 64, 65, 66, 69, 70, 79}};

int a;
for(int x = 0; x < 4; ++x){
    a = grade[x][0];
    for(int y = 0; y < 30; ++y){
        if( a > grade[x][y])
            a = grade[x][y];
            cout << "a is " << a << " for the " << y << "time" << endl;}
    cout << a << endl;}



return 0;

}

我的问题是我不明白为什么在最后两个循环中该值变为 0?真正的答案应该是每行 60。

P.S 我用它来找到最大值并且它起作用了,但不明白为什么它在这里不起作用?

最佳答案

for(int y = 0; y < 30; ++y){

这是因为例如您的第一个数组仅包含 28 个显式初始化 元素并且您迭代到 30 个(见上文)。没有自己初始化的元素都初始化为0。

关于c++ - 查找数组中的最小值(我的代码有什么问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43708787/

相关文章:

c++ - 播放声音时 FMOD 泄漏

python - 向量化计数二维 Numpy 数组

java - 使用嵌套 for 循环初始化 2D 数组并查找模式

ruby - 仅当在模板中定义变量时 Puppet 3 循环执行

c++ - Boost库中用于动态位集的硬件支持的popcount

C++、char*、段错误

c++ - 旧代码 : access arguments of a function passed as an argument to another function?

安卓文字大小

javascript - 从两个数组中获取所有可能的组合

java - 我们可以在Java中将循环变量分配给循环内的值吗?