CCF CSP认证考试历年真题 图像转换 C语言实现

试题编号:201503-1
试题名称:图像旋转 时间限制:5.0s内存限制:256.0MB
问题描述:
问题描述
旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
输入格式
输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。接下来n行每行包含m个整数,表示输入的图像。
输出格式
输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。样例输入

2 3

1 5 3

3 2 4

样例输出
3 4
5 2
1 3

评测用例规模与约定1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。


分析:

很简单一道题,练练手。


代码在此:

#include<stdio.h>

#define SIZE 1000

int arr[SIZE][SIZE];

int main()
{
	int m, n;
	
	scanf("%d %d", &m, &n);
	
	for(int i = 0; i < m; i ++)
	{
		for(int j = 0; j < n; j ++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
	
	for(int j = n-1; j >= 0; j --)
	{
		for(int i = 0; i < m; i ++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	
	return 0;	
}


### CCF CSP 历年 C语言 考试 真题 解答 #### 字符串匹配问题 对于字符串匹配的问题,在CSP认证考试中确实是一个常见的考点。这类题目通常会考察考生对`scanf`和`printf`函数的理解以及如何有效地操作字符串[^2]。 ```c #include <stdio.h> #include <string.h> int main() { char str1[100], str2[100]; // 输入两个字符串 scanf("%s", str1); scanf("%s", str2); // 使用库函数进行比较 if (strstr(str1, str2)) { printf("Match found!\n"); } else { printf("No match.\n"); } return 0; } ``` 此代码片段展示了基本的字符串匹配方法,通过标准库中的`strstr()`函数来判断一个字符串是否为另一个字符串的子串。 #### 数字排序问题 另一道经典的CSP真题涉及到了数字排序的任务。下面提供了一个基于计数排序思路的例子,适用于特定范围内的整数列表排序[^4]。 ```c #include<stdio.h> #define MAXN 1005 void countSort(int *arr, int n) { int output[MAXN]; int count[MAXN]; memset(count, 0, sizeof(count)); for (int i = 0 ; i < n ; ++i) ++count[arr[i]]; for (int i = 1 ; i <= 1000 ; ++i) count[i] += count[i - 1]; for (int i = n - 1 ; i >= 0 ; --i){ output[count[arr[i]]-1] = arr[i]; --count[arr[i]]; } for (int i = 0; i < n; ++i) arr[i] = output[i]; } int main(){ int N; scanf("%d",&N); int nums[N]; for(int i=0;i<N;++i){ scanf("%d",&nums[i]); } countSort(nums,N); for(int i=0;i<N;++i){ printf("%d ",nums[i]); } return 0; } ``` 这段程序实现了简单的计数排序算法,能够高效地处理重复数值较多的情况,并且保持稳定的时间复杂度O(n+k),其中k代表数据的最大可能值加一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值