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

C++ 如何以相反的顺序访问数组中的元素?,c++,arrays,for-loop,multidimensional-array,decrement,C++,Arrays,For Loop,Multidimensional Array,Decrement,所以我不明白我做错了什么(语法错误,嵌套循环,或者只是愚蠢的错误??)。我的编译器要求我按任意键继续。你能给我指一下正确的方向吗 #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] =

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

#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;
}
#包括“stdafx.h”
#包括
使用名称空间std;
int main()
{   
const int MAX_ROWS=2;
常数int MAX_COLS=4;
int bigsall[MAX_ROWS][MAX_COLS]=
{
{1,3,5,7},
{2,4,6,8}
};
对于(int行=2;行>最大行;行--)
{
对于(int Column=4;Column>MAX_COLS;Column--)
{
库特
Row
MAX_ROWS
都等于2您想要的是
Row>0

列循环也是如此

Row
MAX_ROWS
都等于2您想要的是
Row>0

列循环也是如此

Row
MAX_ROWS
都等于2您想要的是
Row>0

列循环也是如此

Row
MAX_ROWS
都等于2您想要的是
Row>0

列循环也是如此

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

后一种:你在4点开始你的内部循环,当
在4点以上时继续。这与从不启动它是一样的。外部循环也有同样的问题

您应该从
SIZE-1
(即
MAX\u ROWS-1
MAX\u 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--){
对于(int Column=MAX\u COLS-1;Column>=0;Column--){
库特
语法错误,嵌套循环,还是愚蠢的错误

后一种:你在4点开始你的内部循环,当
在4点以上时继续。这与从不启动它是一样的。外部循环也有同样的问题

您应该从
SIZE-1
(即
MAX\u ROWS-1
MAX\u 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--){
对于(int Column=MAX\u COLS-1;Column>=0;Column--){
库特
语法错误,嵌套循环,还是愚蠢的错误

后一种:你在4点开始你的内部循环,当
在4点以上时继续。这与从不启动它是一样的。外部循环也有同样的问题

您应该从
SIZE-1
(即
MAX\u ROWS-1
MAX\u 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--){
对于(int Column=MAX\u COLS-1;Column>=0;Column--){
库特
语法错误,嵌套循环,还是愚蠢的错误

后一种:你在4点开始你的内部循环,当
在4点以上时继续。这与从不启动它是一样的。外部循环也有同样的问题

您应该从
SIZE-1
(即
MAX\u ROWS-1
MAX\u 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--){
对于(int Column=MAX\u COLS-1;Column>=0;Column--){
你的意思是

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--)
{
对于(int Column=MAX\u COLS-1;Column>=0;Column--)
{
你的意思是

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--)
{
对于(int Column=MAX\u COLS-1;Column>=0;Column--)
{
你的意思是

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--)
{
对于(int Column=MAX\u COLS-1;Column>=0;Column--)
{
你的意思是

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--)
{
对于(int Column=MAX\u COLS-1;Column>=0;Column--)
{

可能是编译器出了问题;我猜是执行问题。在for循环中,测试是在循环的开头执行的:从一开始,
Row
没有验证
Row>MAX_ROWS
,因此外部循环永远不会执行。从标题“反向顺序”中,您想要的是类似于
for的内容(int Row=MAX_ROWS;Row-->0;)
。编译器有问题;我猜是执行问题。在for循环中,测试在循环开始时执行:从一开始,
Row
不验证
Row>MAX_ROWS
,因此外部循环永远不会执行。您想要什么,从标题“反向顺序”开始,类似于
for(int Row=MAX_ROWS;Row-->0;)
。编译器有问题;我猜是执行问题。在for循环中,测试是在循环的开头执行的:从一开始,
Row
不验证
Row>MAX_ROWS
,因此外部循环永远不会执行。您想从标题中得到什么“逆序”类似于(int Row=MAX_ROWS;Row-->0;)
。编译器出了问题;我猜是执行问题。在for循环中,测试是在循环的开头执行的:从一开始,
没有验证
行>最大行
,因此外部循环永远不会执行。从标题“反向顺序”中,您想要的是类似于
for的内容(int Row=MAX_ROWS;Row-->0;)
.hmm..好的,现在可以了。你能解释一下为什么可以这样做吗?好的,它只是做写的事情。例如,对于行,你有
MAX_ROWS
(2)行的数字是0和1(从0开始计数)。要按相反的顺序查看它们,我们从
MAX_ROWS-1
(即1)开始)然后在0处完成循环计数器的递减。嗯……好吧,现在可以了。你能解释一下为什么可以这样做吗?好吧,它只做所写的事情。例如,对于行,你有
MAX_行
(2)其中有数字0和1(当我们从0开始计数时)。要按相反的顺序查看它们,我们从
MAX_行-1
(即1)开始查看它们并在0递减时结束