用于矩阵旋转的 C++ 程序
c++ program for rotation of matrix
如果我的问题不好,请原谅我,我是新来的
任务:将给定的矩阵旋转 180 度
输入:
1 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
输出:
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
我尝试过什么
#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;
}
在测试用例中失败
输入:
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
其正确输出为:
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++ 的新手,请帮忙。
对于输入输出约束: 问题链接
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 循环中,您错过了"<="。所以应该是
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;
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- C++,系统无法执行指定的程序
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 重载操作程序时出错>>用于类中的字符串 memebr
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 试图在visual studio上用C++创建一个桌面应用程序
- 模板元程序查找相似的连续类型名称
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 如何通过cpp程序运行shell脚本
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- IPC使用多个管道和分支进程来运行Python程序
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 基于boost的程序的静态链接——zlib问题
- 程序崩溃并显示"std::out_of_range"错误
- 在C应用程序中运行C++(带有STL)函数
- 使用mongocxx驱动程序时包含头文件问题
- 如何在c++程序中找到函数的地址