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递减时结束