PDA

View Full Version : سوال: شیفت دادن سطر های یک ماتریس دو بعدی



nokhodi
جمعه 22 آذر 1392, 23:33 عصر
سلام...

113925


فک کنم از عکس گویا باشه مسله...
اون مربع طوسی رنگ و دو خط زیرش تریس دستی من بود برای اینکه مسئله رو بفهمم
برنامه یی رو هم که فکر میکردم جواب میده و نوشتم رو هم براتون میزارم
ممنون میشم راهنمایم کنید بگید برای شیفت دادن سطرهای به سمت پایین چه کدی رو باید بجای اون سه خط در حلقه for قرار بدم...




#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char** argv)

{
int temp;
int test1[4][4] = {
{0, 1, 2, 6},
{3, 4, 5, 7},
{7, 8, 9, 1},
{2, 6, 5, 0}
};


for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << test1[i][j] << ' ';
}
cout << endl;
}

cout <<"-------------------------------------------";
cout << endl;


for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++) {
temp =test1[i][j];
test1[i][j]=test1[i++][j];
test1[i++][j]= temp;
}



for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << test1[i][j] << ' ';
}
cout << endl;
}

getchar();

}

rahnema1
شنبه 23 آذر 1392, 05:18 صبح
اینجوری میشه :


int temp[4];
for (int j = 0; j < 4; j++) temp[j] =test1[3][j];
for (int i = 3; i >0; i--)
for (int j = 0; j < 4; j++)
test1[i][j]=test1[i-1][j];
for (int j = 0; j < 4; j++) test1[0][j]= temp[j];