註冊
登錄
論壇
搜索
幫助
導航
私人消息 (0)
公共消息 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
種子論壇 | 高雄市資訊培育協會學員討論區
»
結訓課程 (青少年程式設計班)
»
程式解題我最行 (週六10:00-12:00)
» [作業] APCS 實作題 10503 - 2 矩陣轉換
返回列表
發帖
發短消息
加為好友
李泳霖
當前離線
UID
68663
帖子
7920
精華
14
積分
620
閱讀權限
100
在線時間
2257 小時
註冊時間
2020-10-15
最後登錄
2025-5-2
版主
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
李泳霖
發表於 2022-1-14 15:13
|
顯示全部帖子
[作業] APCS 實作題 10503 - 2 矩陣轉換
b965: 第 2 題 矩陣轉換
APCS 實作題 10503 - 2
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class P2 {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str,raw[];//宣告一個字串以及字串陣列
int r,c,m;//列、欄、操作
int d1[][],d2[][];//準備陣列d1跟d2可使旋轉用
int o[];//存操作指令
P2() throws IOException
{
//System.out.println("aa");
while((str=br.readLine())!=null)//一次輸入列、欄、操作 以空白分割
{
raw=str.split(" ");//將列、欄、操作以空白分割存到raw[0]raw[1]raw[2]內
r=Integer.parseInt(raw[0]);
c=Integer.parseInt(raw[1]);
m=Integer.parseInt(raw[2]);
d1=new int[r][c];//宣告陣列大小
d2=new int[r][c];//宣告陣列大小
o=new int[m];//宣告操作的陣列大小
for(int i=0;i<r;i++)//3列
{
raw=br.readLine().split(" ");//輸入完一列的值後存到raw內
for(int j=0;j<c;j++)//2欄
{
d1[i][j]=Integer.parseInt(raw[j]);//將raw每一編號的內值存到d1
}
}
raw=br.readLine().split(" ");
for(int i=0;i<m;i++)
o[i]=Integer.parseInt(raw[i]);
for(int i=o.length-1;i>=0;i--)
{
if(o[i]==1)//若為翻轉
{
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
d2[j][k]=d1[r-1-j][k];
}
}
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
d1[j][k]=d2[j][k];//copy一份給d1
//System.out.print(d1[j][k]+" ");
}
//System.out.println();
}
}
else//若為旋轉
{
//r-->列=3 c->欄=2
d2=new int[c][r];//列跟欄改變,重新設定d2陣列長度,方便做旋轉
//d2[2][3]
for(int j=0;j<c;j++)// j=0 1
{
for(int k=0;k<r;k++)//k=0 1 2
{
d2[j][k]=d1[k][c-1-j];
}
}
d1=new int[c][r];//d1陣列需要重新變成2列3欄
for(int j=0;j<c;j++)
{
for(int k=0;k<r;k++)
{
d1[j][k]=d2[j][k];
//System.out.print(d1[j][k]+" ");
}
//System.out.println();
}
//以下的列跟欄要做交換方便下次在旋轉
//c=2 r=3
int tmp=r;
r=c;
c=tmp;
}
//System.out.println();
}
System.out.println(r+" "+c);//先印a的列跟欄
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)//k=0 1 c=2
{
if(k<c-1)//印第一欄的時候要加上空白
System.out.print(d1[j][k]+" ");
else
System.out.print(d1[j][k]);
}
System.out.println();
}
}
}
public static void main(String[] args) throws IOException {
// TODO 自動產生的方法 Stub
new P2();
}
}
/*
1 1 2 1 1
1 3 1 3 1
1 2
d2 d1
i j i j
0 0 <-- 0 1
0 1 <-- 1 1
0 2 <-- 2 1
1 0 <-- 0 0
1 1 <-- 1 0
1 2 <-- 2 0
*/
複製代碼
附件:
您需要
登錄
才可以下載或查看附件。沒有帳號?
註冊
收藏
分享
發短消息
加為好友
李泳霖
當前離線
UID
68663
帖子
7920
精華
14
積分
620
閱讀權限
100
在線時間
2257 小時
註冊時間
2020-10-15
最後登錄
2025-5-2
版主
2
#
李泳霖
發表於 2022-1-14 15:14
|
顯示全部帖子
此帖僅作者可見
TOP
返回列表
程式解題我最行(週五19:00-21:00)
谷哥人營隊
Python研習營(113-114)
114年Python證照特訓
114年谷哥人程式體驗營
114年APCS冬令營
113Scratch夏令營
Scratch冬令營(113-114)
113年國三專班
Python證照特訓營(113)
113年程式夏令營(一)(二)
113年APCS夏令營(一)(二)
C語言 / C++ (特別輔導)
C++證照
C#
家教/特輔
C語言特輔/證照(家教)
C++證照
C#
HTML5+CSS+JavaScript+PHP+MySQL
Java 家教 (王捷恩)
TQC+資料結構
快樂學 Scratch
Python 家教 (王捷恩 康恒睿)
Python 特別輔導 (家教)
快樂 C++ (家教)
iKnow
我愛 Java (家教)
程式解題我最行 (家教)
程式常態班
C++ 新生挑戰區
考照心得分享
快樂 C++11307週五19:00
快樂C++11309週六13:30-15:30
快樂 C++11403週六1000
快樂 C++11303 (週六15:40-17:40) 3F
程式解題我最行 (週六15:30-17:30) 3F
快樂 C++ (週六13:30-15:30) 3F
快樂 C++ (週六19:00-21:00) 3F
程式解題我最行 (週六10:00-12:00) 3F
快樂學 Scratch
程式解題我最行(週五19:00-21:00)
快樂 C++ (週六13:30-15:30) 3F
程式解題我最行(週三19:15-21:15)
快樂 C++11207週六10
快樂 C++11208週六19:00
程式解題我最行 (週六19:00-21:00) 3F
程式解題我最行 (週四19:10-21:10)
產投職訓
結訓課程 (產投職訓)
Php & MySQL old
Illustrator old
Dreamweaver old
Android手機程式開發班
PHP & MySQL電子商務互動式網站實作班 (102下)
PHP & MySQL (102上)
PHP & MySQL電子商務互動式網站實作班
Photoshop數位影像設計初階
Flash創意廣告動畫初階
行銷短片視訊剪輯
數位商業攝影實務班
PHP & MySQL電子商務系統開發實務初階班
電子商務系統開發實務中階班
Server基礎架設&動態網頁設計初階班
Java視窗應用程式設計與遊戲開發班
Illustrator時尚插畫創作設計初階班
102上Php & MySQL 初階班
電子商務互動式網站實作中階
Dreamweaver多媒體網頁設計
Android手機程式開發班(2012年10月)
PHP & MySQL (2012年10月)
創意塗鴉
yahoo橫幅
google橫幅
市民學苑
第二屆樂活部落格
第一屆電腦設備簡易維護和故障排除班
專案訓練
電子商務創業班
TQC PHP認證
投資理財班
領隊導遊班
電腦基礎及網路應用身心障礙專班
應用軟體網頁化開發
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]