函教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
#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位内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复