如何以相反的顺序访问数组中的元素

How to access elements in an array in reverse order?

本文关键字:访问 数组 元素 顺序      更新时间:2023-10-16

所以我不明白我做错了什么(语法错误,嵌套循环,或者只是愚蠢的错误??)。我的编译器要求我按任意键继续。你能给我指正确的方向吗??

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{   
    const int MAX_ROWS = 2;
    const int MAX_COLS = 4;
    int BigSmall[MAX_ROWS][MAX_COLS] = 
    {
        {1,3,5,7},
        {2,4,6,8}
    };
    for( int Row = 2; Row > MAX_ROWS; Row--)
    {
        for( int Column = 4; Column > MAX_COLS; Column--)
        {
            cout << "Integer[" << Row << "][" << Column << "] = " << BigSmall[Row][Column] << endl;
        }   
    }
        return 0;
}
for( int Row = 2; Row > MAX_ROWS; Row--)

RowMAX_ROWS都等于2你想要的是Row > 0

列循环也是如此

语法错误,嵌套循环,还是愚蠢的错误?

后一种:从四开始你的内循环,当Column在四之上时继续。这和从不启动它是一样的。外循环也有同样的问题。

您应该在SIZE-1(即MAX_ROWS - 1MAX_COLS - 1)开始循环,并在高于或为零时继续:

for( int Row = MAX_ROWS-1; Row >= 0 ; Row--) {
    for( int Column = MAX_COLS - 1; Column >= 0 ; Column--) {
        cout << "Integer[" << Row << "][" << Column << "] = " << BigSmall[Row][Column] << endl;
    }   
}

演示。

你是说吗

for( int Row = MAX_ROWS - 1; Row >=0 ; Row--)
{
    for( int Column = MAX_COLS - 1; Column >= 0 ; Column--)
    {
        cout << "Integer[" << Row << "][" << Column << "] = " << BigSmall[Row][Column] << endl;
    }   
}