如題。。。不知道為什麼最後一筆測資一直過不去QQ
是不是有什麼特別條件
#include<stdio.h>
int r,c,m,i,j,v,a[10][10],b[10][10],x,y,l,temp;
int m1()
{
x=r-1;
for(i=x;i>=0;i--)
{
for(j=0;j<c;j++)
{
b[x-i][j]=a[i][j];
}
}
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
a[i][j]=b[i][j];
}
}
return 0;
}
int m2()
{
temp=r;
r=c;
c=temp;
x=c-1;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
b[i][j]=a[x][i];
x--;
}
x=c-1;
}
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
a[i][j]=b[i][j];
}
}
return 0;
}
int main()
{
while(scanf("%d",&r)!=EOF)
{
scanf("%d%d",&c,&m);
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
scanf("%d",&a[i][j]);
}
}
x=r-1;
y=c-1;
while(m--)
{
scanf("%d",&v);
if(v==1)
{
m1();
}
else if(v==0)
{
m2();
}
}
printf("%d %d\n",r,c);
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d",a[i][j]);
if(j!=(c-1))
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
如題。。。不知道為什麼最後一筆測資一直過不去QQ
是不是有什麼特別條件
#include
int r,c,m,i,j,v,a[10][10],b[10][10],x,y,l,temp;
int m1()
{
略...
}
int m2()
{
temp=r;
r=c;
c=temp;
x=c-1;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
b[i][j]=a[x][i];
x--;
}
x=c-1;
}
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
a[i][j]=b[i][j];
}
}
return 0;
}
int main()
{
略...
}
請注意題目敘述
我們可以對矩陣定義兩種操作如下:
翻轉:即第一列與最後一列交換、第二列與倒數第二列交換、… 依此類推。
旋轉:將矩陣以順時針方向轉 90 度。
給定 矩陣B 和一連串的操作,請算出原始的 矩陣A 。
而你的m2操作是順時針旋轉
------
額外小建議
1) 如果自訂function不需要回傳值的話,你可以宣告成void m1(...){...}和void m2(...)(...),這樣就不需要return任何東西(也就是不用寫return,反正你return的值也沒有作用)
2) 如果if或while或for等迴圈後只有一行,像是
for(j=0;j<c;j++)
{
a[i][j]=b[i][j];
}
中括號{}可以省略,可以讓程式碼更漂亮喔~~
想當初我參加APCS大學程式設計先修檢測就是寫到這題呢呵呵
如題。。。不知道為什麼最後一筆測資一直過不去QQ
是不是有什麼特別條件
#include
int r,c,m,i,j,v,a[10][10],b[10][10],x,y,l,temp;
int m1()
{
略...
}
int m2()
{
temp=r;
r=c;
c=temp;
x=c-1;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
b[i][j]=a[x][i];
x--;
}
x=c-1;
}
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
a[i][j]=b[i][j];
}
}
return 0;
}
int main()
{
略...
}
請注意題目敘述
我們可以對矩陣定義兩種操作如下:
翻轉:即第一列與最後一列交換、第二列與倒數第二列交換、… 依此類推。
旋轉:將矩陣以順時針方向轉 90 度。
給定 矩陣B 和一連串的操作,請算出原始的 矩陣A 。
而你的m2操作是順時針旋轉
------
額外小建議
1) 如果自訂function不需要回傳值的話,你可以宣告成void m1(...){...}和void m2(...)(...),這樣就不需要return任何東西(也就是不用寫return,反正你return的值也沒有作用)
2) 如果if或while或for等迴圈後只有一行,像是
for(j=0;j<c;j++)
{
a[i][j]=b[i][j];
}
中括號{}可以省略,可以讓程式碼更漂亮喔~~
想當初我參加APCS大學程式設計先修檢測就是寫到這題呢呵呵
中括號{}可以省略,可以讓程式碼更漂亮喔~~
{}是大括號吧?