C++ c++;矩阵旋转程序
如果我的问题不好,请原谅,我是新来的 任务: 将给定矩阵旋转180度 输入:C++ c++;矩阵旋转程序,c++,matrix,C++,Matrix,如果我的问题不好,请原谅,我是新来的 任务: 将给定矩阵旋转180度 输入: 10 220 892 951 241 739 884 66 815 904 660 85 784 379 346 598 873 716 535 422 902 579 872 41 870 827 406 910 583 349 896 771 817 361 591 212 74 199 421 820 176 496 771 558 954 889 628 126
10
220 892 951 241 739 884 66 815 904 660
85 784 379 346 598 873 716 535 422 902
579 872 41 870 827 406 910 583 349 896
771 817 361 591 212 74 199 421 820 176
496 771 558 954 889 628 126 250 58 156
683 88 339 58 436 176 57 459 22 394
43 280 839 618 688 573 493 178 941 504
420 676 888 935 95 593 616 833 115 210
339 798 694 515 7 831 103 947 992 724
195 904 864 51 174 980 960 4 974 509
输出:
我尝试过的
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
int a[15][15];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
for (int i = 0; i < n; i++) {
int p = n - 1;
for (int j = 0; j <= (n - 1) / 2; j++)
swap(a[i][j], a[i][p--]);
}
for (int j = 0; j < n; j++) {
int p = n - 1;
for (int i = 0; i < (n - 1) / 2; i++)
swap(a[i][j], a[p--][j]);
}
cout << "checking if printing all row or not" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
}
return 0;
}
其正确输出为:
509 974 4 960 980 174 51 864 904 195
724 992 947 103 831 7 515 694 798 339
210 115 833 616 593 95 935 888 676 420
504 941 178 493 573 688 618 839 280 43
394 22 459 57 176 436 58 339 88 683
156 58 250 126 628 889 954 558 771 496
176 820 421 199 74 212 591 361 817 771
896 349 583 910 406 827 870 41 872 579
902 422 535 716 873 598 346 379 784 85
660 904 815 66 884 739 241 951 892 220
在线法官说
代码的输出是:
509 974 4 960 980 174 51 864 904 195
724 992 947 103 831 7 515 694 798 339
210 115 833 616 593 95 935 888 676 420
504 941 178 493 573 688 618 839 280 43
156 58 250 126 628 889 954 558 771 496
但当我调试我的程序时,我发现整个矩阵都是正确的。
我在C++中出错了吗?我是C++新手,请帮助。
对于输入输出约束:
用于(int j=0;j
在上面的内部for循环中,您遗漏了“for(int j=0;j
在上面的内部for循环中,您错过了“阅读调试代码的提示。请注意,如果您的任务是打印旋转的矩阵,那么您实际上不必旋转矩阵。您可以使用现在使用的相同索引转换直接打印它。只是为了确定,当您向online judge发送代码时,是否删除了:
cout是否可能最后一个“
不应作为输出的一部分?我曾经在这样一个“问题”上浪费了一些时间,只是为了得出这样一个结论,即在线评委除了教你如何让在线评委开心之外,什么都不教你阅读调试代码的技巧。请注意,如果你的任务是打印旋转的矩阵,那么你实际上不需要旋转矩阵。您可以使用现在使用的相同索引转换直接打印它。只是为了确定,当您向online judge发送代码时,是否删除了:cout是否可能最后一个“
不应作为输出的一部分?我曾经在这样一个“问题”上浪费了一些时间,只是为了得出这样一个结论:在线评委除了教你如何让在线评委开心之外,什么也教不了你
509 974 4 960 980 174 51 864 904 195
724 992 947 103 831 7 515 694 798 339
210 115 833 616 593 95 935 888 676 420
504 941 178 493 573 688 618 839 280 43
394 22 459 57 176 436 58 339 88 683
156 58 250 126 628 889 954 558 771 496
176 820 421 199 74 212 591 361 817 771
896 349 583 910 406 827 870 41 872 579
902 422 535 716 873 598 346 379 784 85
660 904 815 66 884 739 241 951 892 220
509 974 4 960 980 174 51 864 904 195
724 992 947 103 831 7 515 694 798 339
210 115 833 616 593 95 935 888 676 420
504 941 178 493 573 688 618 839 280 43
156 58 250 126 628 889 954 558 771 496
for (int j = 0; j < n; j++) {
int p = n - 1;
for (int i = 0; i < (n - 1) / 2; i++)
swap(a[i][j], a[p--][j]);
}
for (int i = 0; i <= (n - 1) / 2; i++)
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
int a[15][15];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
for (int i = 0; i < n; i++) {
int p = n - 1;
for (int j = 0; j <= (n - 1) / 2; j++)
swap(a[i][j], a[i][p--]);
}
for (int j = 0; j < n; j++) {
int p = n - 1;
for (int i = 0; i <= (n - 1) / 2; i++)
swap(a[i][j], a[p--][j]);
}
cout << "checking if printing all row or not" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
}
return 0;
}