洛谷B2107图像旋转

这篇文章讲述了如何使用C++编程语言实现一个图像旋转功能,将给定的n×m黑白图像顺时针旋转90度,并给出了具体的代码示例和输入输出格式说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

输入一个 n 行 m 列的黑白图像,将它顺时针旋转 90 度后输出。

输入格式

第一行包含两个整数 n 和 m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。

接下来 n 行,每行 m 个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在 0∼255 之间。

输出格式

m 行,每行 n 个整数,为顺时针旋转 90 度后的图像。相邻两个整数之间用单个空格隔开。

思路

与B2106矩阵转置类似,只是输出的循环嵌套不一样,可以把B2106矩阵转置的代码复制下来,慢慢调试就行了

#include<iostream>
using namespace std;
int main(){
    long long m,n;
    cin>>n>>m;
    long long a[101][101];
    for(int i=0;i<n;i++){
    	for(int j=0;j<m;j++){
    		cin>>a[i][j];
		}
	}
	for(int i=0;i<m;i++){
		for(int j=n-1;j>=0;j--){//这里的循环改成倒着来
			cout<<a[j][i]<<" ";
		} 
		cout<<endl;
	}
	return 0;
}



END

B4036 题目尚未提供具体信息,但根据题目编号推测,这是一道编程相关的题目。以下是基于常见算法题型和代码实现的解答方案。 ### 问题分析与解决方案 平台上的题目通常涉及算法设计、数据结构应用或数学逻辑推导。假设 B4036 是一道涉及字符串处理的问题,以下是一个可能的解决方案。 #### 假设题目要求:字符串翻转 给定一个字符串,要求将其反转后输出。 ```cpp #include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; // 输入字符串 reverse(s.begin(), s.end()); // 使用STL函数reverse进行字符串反转 cout << s << endl; // 输出结果 return 0; } ``` 上述代码使用了 C++ 标准库中的 `reverse` 函数来实现字符串的反转[^1]。此方法简单高效,适用于需要对字符串进行逆序操作的场景。 #### 假设题目要求:矩阵旋转 如果题目要求将一个 n×n 的矩阵顺时针旋转 90 度,则可以采用如下代码实现: ```cpp #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; // 输入矩阵大小 vector<vector<int>> matrix(n, vector<int>(n)); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cin >> matrix[i][j]; // 输入矩阵元素 } } vector<vector<int>> rotated(n, vector<int>(n)); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { rotated[j][n - 1 - i] = matrix[i][j]; // 实现矩阵旋转 } } for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cout << rotated[i][j] << " "; // 输出旋转后的矩阵 } cout << endl; } return 0; } ``` 该代码通过双重循环实现了矩阵的顺时针旋转功能[^2]。矩阵旋转是常见的算法问题,适用于图像处理、图形学等领域。 #### 假设题目要求:字符对齐输出 若题目要求对齐输出多个字符或数字,可以参考以下代码: ```cpp #include <iomanip> #include <iostream> using namespace std; int main() { int a, b, c; cin >> a >> b >> c; // 输入三个整数 cout << setw(8) << a << " " << setw(8) << b << " " << setw(8) << c << endl; // 使用setw设置宽度 return 0; } ``` 此代码利用了 C++ 中的 `setw` 函数,用于控制输出字段的宽度[^3]。这种方法在格式化输出时非常有用。 ### 注意事项 - 在编写代码时,需确保输入输出的格式严格符合题目要求。 - 如果题目涉及特定的数据范围或边界条件,务必在代码中加以考虑。 - 对于复杂问题,建议先设计算法框架,再逐步实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值