#16848: 為什麼這樣不行?幫我看一下~


jonjonqq (jonjonqq)

學校 : 臺中市私立明道高級中學
編號 : 72432
來源 : [122.117.36.246]
最後登入時間 :
2019-02-15 00:09:10
a015. 矩陣的翻轉 | From: [122.117.36.246] | 發表日期 : 2019-02-13 21:05

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
//矩陣翻轉
int x,y,i,j,k,m,flipx,v,b,ansx,ansy,q,w;
scanf("%d %d\n", &x, &y);
int box[100][100],ans[100][100],fin[100][100];
flipx = x-1 ;
ansx = 0 ;
ansy = x-1 ;
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
if(j==y){
scanf("%d\n", &box[i][j]);
}
else{
scanf("%d", &box[i][j]);
}
}
}
if(x%2==0){//偶數行
for(int k=0;k<x;k++,flipx--){
for(int m=0;m<y;m++){
ans[k][m]=box[flipx][m];
}
}
}
else if(x%2==1){//奇數行(中間不動)
for(int k=0;k<x;k++,flipx--){
for(int m=0;m<y;m++){
ans[k][m]=box[flipx][m];
}
}
for(int m=0;m<y;m++){//中間
ans[(x-1)/2][m]=box[(x-1)/2][m];
}
}
for(int q=0,ansy=x-1;q<x;q++,ansy--){//旋轉
for(int w=0,ansx=0;w<y;w++,ansx++){
fin[w][q]=ans[ansy][ansx];
}
}
for(int v=0;v<y;v++){//print
for(int b=0;b<x;b++){
printf("%d ", fin[v][b]);
}
if(v<y-1){
printf("\n");
}
}


return 0;
}

 
#16851: Re:為什麼這樣不行?幫我看一下~


bigppman89@gmail.com (電工膠布_python啦~)

學校 : 臺中市立西苑高級中學
編號 : 91162
來源 : [61.218.122.12]
最後登入時間 :
2019-12-04 15:23:11
a015. 矩陣的翻轉 | From: [1.165.181.233] | 發表日期 : 2019-02-13 23:13

#include
#include
int main(void)
{
//矩陣翻轉
int x,y,i,j,k,m,flipx,v,b,ansx,ansy,q,w;
scanf("%d %d\n", &x, &y);
int box[100][100],ans[100][100],fin[100][100];
flipx = x-1 ;
ansx = 0 ;
ansy = x-1 ;
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
if(j==y){
scanf("%d\n", &box[i][j]);
}
else{
scanf("%d", &box[i][j]);
}
}
}
if(x%2==0){//偶數行
for(int k=0;k<x;k++,flipx--){
for(int m=0;m<y;m++){
ans[k][m]=box[flipx][m];
}
}
}
else if(x%2==1){//奇數行(中間不動)
for(int k=0;k<x;k++,flipx--){
for(int m=0;m<y;m++){
ans[k][m]=box[flipx][m];
}
}
for(int m=0;m<y;m++){//中間
ans[(x-1)/2][m]=box[(x-1)/2][m];
}
}
for(int q=0,ansy=x-1;q<x;q++,ansy--){//旋轉
for(int w=0,ansx=0;w<y;w++,ansx++){
fin[w][q]=ans[ansy][ansx];
}
}
for(int v=0;v<y;v++){//print
for(int b=0;b<x;b++){
printf("%d ", fin[v][b]);
}
if(v<y-1){
printf("\n");
}
}


return 0;
}

會不會是你沒有重複讀取

前人的討論可以翻個

while(scanf(" %d %d",&row,&column)!=EOF)

 
ZeroJudge Forum