华为2019实习生编程笔试

匿名 (未验证) 提交于 2019-12-02 23:36:01

2019华为实习生笔试题第一题。

输入一个整数N,表示一个矩阵的行数和列数。接下来输入一个整数m,表示矩阵的逆时针旋转的次数。最后输入旋转后的矩阵。

输入描述:

3
1 2 3
4 5 6
7 8 9

2

输出描述:

9 8 7
6 5 4
3 2 1

C语言实现代码如下:

 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>   int main() { 	int N = 0; 	int n = 0; 	int i = 0; 	int j = 0; 	int tmp = 0;   	scanf_s("%d\n", &N); 	int* a[10]; 	for (j = 0; j < N; j++) 	{ 		a[j] = (int*)malloc(N * 2 * sizeof(int)); 		for (i = 0; i < 2 * N - 1; i++) 		{ 			scanf_s("%d", &tmp); 			char c = getchar(); 			a[j][i] = tmp; 			if (c == '\n') 			{ 				break; 			} 		} 	} 	scanf_s("%d", &n); 	switch (n % 4) 	{ 	case  0: 		for (j = 0; j < N; j++) 		{ 			for (i = 0; i < N; i++) 			{ 				printf_s("%d ", a[j][i]); 			} 			putchar('\n'); 		} 		break; 	case  1: 		for (i = 0; i < N; i++) 		{ 			for (j = N - 1; j >= 0; j--) 			{  				printf_s("%d ", a[j][i]); 			} 			putchar('\n'); 		} 		break; 	case  2: 		for (i = N - 1; i >= 0; i--) 		{ 			for (j = N - 1; j >= 0; j--) 			{ 				printf_s("%d ", a[i][j]); 			} 			putchar('\n'); 		} 		break; 	case  3: 		for (i = N - 1; i >= 0; i--) 		{ 			for (j = 0; j < N; j++) 			{  				printf_s("%d ", a[j][i]); 			} 			putchar('\n'); 		} 		break; 	} 	return 0; }

文章来源: https://blog.csdn.net/xiaohuihiu/article/details/90638666
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!