[問題] 二維陣列反轉90度
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
我希望可以將一個二維陣列反轉90度
像是int a[3][3]={1,2,3,4,5,6,7,8,9}
1 2 3
4 5 6
7 8 9
希望得到的正確結果:
如果把它反轉90度變成
a[3][3]={3,6,9,2,5,8,1,4,7}
3 6 9
2 5 8
1 4 7
程式跑出來的錯誤結果:
我寫的程式好像只有第一列可以正確的反轉
之後幾列都是錯的
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev C++
有問題的code: (請善用置底文標色功能)
以下是我全部的程式碼
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
int x;
for(int z=0;z<3;z++)
for(int s=0;s<3;s++)
printf("first %d\n",a[z][s]);
printf("\n");
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
if(i==0)
{
a[0][j]=a[j][2];
}
if(i==1)
{
a[1][j]=a[j][1];
}
if(i==2)
{
a[2][j]=a[j][0];
}
}
for(int f=0;f<3;f++)
for(int g=0;g<3;g++)
printf("second %d\n",a[f][g]);
system("PAUSE");
exit(0);
}
補充說明:
會錯好像是因為第一列的陣列已經重排過了
所以這樣寫第二三列會有錯誤
但是不這樣寫我就不知道該如何寫了
X請問該如何修改呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.136.211.113
推
03/18 17:44, , 1F
03/18 17:44, 1F
→
03/18 17:45, , 2F
03/18 17:45, 2F
→
03/18 17:45, , 3F
03/18 17:45, 3F
推
03/18 21:00, , 4F
03/18 21:00, 4F