您的位置:首页 > 其它

UVa 11360 - Have Fun with Matrices

2016-06-08 11:38 1096 查看
題目:已知一個矩陣,在矩陣中做一些操作(轉置、交換行、交換列,整體自增或自減)輸出結果。

分析:模擬。直接模擬輸出即可。

說明:╮(╯▽╰)╭。

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cmath>

using namespace std;

char matrix[10][11];
char operation[11];

int main()
{
int T, N, M, parameter1, parameter2;
while (~scanf("%d",&T))
for (int t = 1; t <= T; ++ t) {
scanf("%d",&N);
for (int i = 1; i <= N; ++ i) {
scanf("%s",&matrix[i][1]);
}

scanf("%d",&M);
for (int o = 1; o <= M; ++ o) {
scanf("%s",operation);
if (!strcmp(operation, "transpose")) {
for (int i = 1; i <= N; ++ i) {
for (int j = 1; j < i; ++ j) {
swap(matrix[i][j], matrix[j][i]);
}
}
}else if (!strcmp(operation, "inc")) {
for (int i = 1; i <= N; ++ i) {
for (int j = 1; j <= N; ++ j) {
matrix[i][j] ++;
if (matrix[i][j] > '9') {
matrix[i][j] = '0';
}
}
}
}else if (!strcmp(operation, "dec")) {
for (int i = 1; i <= N; ++ i) {
for (int j = 1; j <= N; ++ j) {
matrix[i][j] --;
if (matrix[i][j] < '0') {
matrix[i][j] = '9';
}
}
}
}else if (!strcmp(operation, "row")) {
scanf("%d%d",¶meter1,¶meter2);
for (int i = 1; i <= N; ++ i) {
swap(matrix[parameter1][i], matrix[parameter2][i]);
}
}else if (!strcmp(operation, "col")) {
scanf("%d%d",¶meter1,¶meter2);
for (int i = 1; i <= N; ++ i) {
swap(matrix[i][parameter1], matrix[i][parameter2]);
}
}
}

printf("Case #%d\n",t);
for (int i = 1; i <= N; ++ i) {
puts(&matrix[i][1]);
}
puts("");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: