#23591: 有人知道為什麼輸出會多一個空格,要怎麼改


pan930312 (sup_homies)

學校 : 不指定學校
編號 : 127233
來源 : [220.137.72.106]
最後登入時間 :
2021-11-08 17:43:14
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [61.231.53.110] | 發表日期 : 2020-12-01 00:00

#0: 30% WA (line:2)

您的答案為: 9 1 0 
正確答案為: 9 1 0

#1: 70% WA (line:2)

您的答案為: 9 9 3 7 7 
正確答案為: 9 9 3 7 7


#include<iostream> #include<algorithm> using namespace std; int main(){ int r,c,m,x; cin>>r>>c>>m; int squ[m+1][max(r,c)+1][max(r,c)+1],mk[m+1],lastw = c,lasth = r,change;//[直][橫] for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ cin>>squ[0][i][j]; } } for(int i=m;i>=1;i--) cin>>mk[i]; for(int i=1;i<=m;i++){ if(mk[i] == 0){ for(int j=1;j<=lastw;j++){//c = 上一個的寬 for(int k=1;k<=lasth;k++){//k = 上一個的高 squ[i][j][k] = squ[i-1][k][lastw+1-j];//new(2,1) = old(1,2) } } change = lastw; lastw = lasth; lasth = change; } else if(mk[i] == 1){ for(int j=1;j<=lasth;j++){ for(int k=1;k<=lastw;k++){ squ[i][j][k] = squ[i-1][lasth+1-j][k]; } } } } cout<<lasth<<' '<<lastw<<endl; for(int i=1;i<=lasth;i++){ for(int j=1;j<=lastw;j++){ if(j!=lastw||i!=lasth)cout<<squ[m][i][j]<<" "; else cout<<squ[m][i][j]; } cout<<endl; } }

 

 
#23594: Re:有人知道為什麼輸出會多一個空格,要怎麼改


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [218.161.41.139] | 發表日期 : 2020-12-01 12:38

if(j!=lastw||i!=lasth)cout<<squ[m][i][j]<<" ";

問題出在 i!=lasth,可以把空白改成其他符號,會看比較清楚

 
#23596: Re:有人知道為什麼輸出會多一個空格,要怎麼改


pan930312 (sup_homies)

學校 : 不指定學校
編號 : 127233
來源 : [220.137.72.106]
最後登入時間 :
2021-11-08 17:43:14
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [61.231.53.110] | 發表日期 : 2020-12-01 21:14

if(j!=lastw||i!=lasth)cout<<squ[m][i][j]<<" ";

問題出在 i!=lasth,可以把空白改成其他符號,會看比較清楚

改了空格的問題,自己測正確,但不知道為什麼少一行

#0: 30% WA (line:7)

您只輸出了 6 行。

#1: 70% WA (line:5)

您只輸出了 4 行。
#include<iostream> #include<algorithm> using namespace std; int main(){ int r,c,m,x; cin>>r>>c>>m; int squ[m+1][max(r,c)+1][max(r,c)+1],mk[m+1],lastw = c,lasth = r,change;//[直][橫] for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ cin>>squ[0][i][j]; } } for(int i=m;i>=1;i--) cin>>mk[i]; for(int i=1;i<=m;i++){ if(mk[i] == 0){ for(int j=1;j<=lastw;j++){//c = 上一個的寬 for(int k=1;k<=lasth;k++){//k = 上一個的高 squ[i][j][k] = squ[i-1][k][lastw+1-j];//new(2,1) = old(1,2) } } change = lastw; lastw = lasth; lasth = change; } else if(mk[i] == 1){ for(int j=1;j<=lasth;j++){ for(int k=1;k<=lastw;k++){ squ[i][j][k] = squ[i-1][lasth+1-j][k]; } } } } cout<<lasth<<' '<<lastw<<endl; for(int i=1;i<=lasth;i++){ for(int j=1;j<=lastw;j++){ if(j!=lastw)cout<<squ[m][i][j]<<" "; else cout<<squ[m][i][j]; } cout<<endl; } }

 

 
#23602: Re:有人知道為什麼輸出會多一個空格,要怎麼改


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [218.161.41.139] | 發表日期 : 2020-12-02 11:10

請注意題目說明

輸入包含多筆測資。

要用 while 處理多筆測資輸入,答案少的應該不只一行。試過改完可以通過範例輸入,實際就要你自己試試看了

 
#23603: Re:有人知道為什麼輸出會多一個空格,要怎麼改


pan930312 (sup_homies)

學校 : 不指定學校
編號 : 127233
來源 : [220.137.72.106]
最後登入時間 :
2021-11-08 17:43:14
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [140.126.248.245] | 發表日期 : 2020-12-02 11:22

請注意題目說明

輸入包含多筆測資。

要用 while 處理多筆測資輸入,答案少的應該不只一行。試過改完可以通過範例輸入,實際就要你自己試試看了


問題解決了,感謝您!

 
ZeroJudge Forum