函教fun的功能是:将a所指3x5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。
例如,有下列矩阵:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5若k等于2,程序执行结果为:
3 4 5 1 2
3 4 5 1 2
3 4 5 1 2
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#define M 3 #define N 5 void fun(int (*a)[N], int k){ int i, j, p, temp; for (p = 1; p <= k; p++) for (i = 0; i < M; i++){ temp = a[i][0]; for (j = 0; j < N - 1; j++) a[i][j] = a[i][j + 1]; a[i][N - 1] = temp; } } int main(){ int x[M][N] = {{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}}, i, j; printf("The array before moving:n"); for (i = 0; i < M; i++){ for (j = 0; j < N; j++) printf("%3d", x[i][j]); printf("n"); } fun(x, 2); printf("The array after moving:n"); for (i = 0; i < M; i++){ for (j = 0; j < N; j++) printf("%3d", x[i][j]); printf("n"); } }
程序结果:
最后
以上就是娇气狗最近收集整理的关于将二维矩阵列元素循环左移k位 C语言的全部内容,更多相关将二维矩阵列元素循环左移k位内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复