C语言:将3*5矩阵中第k列的元素左移到第0列,第k列以后的每列元素依次左移,原来左边的各列依次绕到右边。-在m行m列的二维数组中存放如下规律的数据,
//将3*5矩阵中第k列的元素左移到第0列,第k列以后的每列元素依次左移,原来左边的各列依次绕到右边。
1 #include <stdio.h> 2 #define M 3 3 #define N 5 4 void fun(int (*a)[N],int k) 5 { int i,j,p,temp; 6 /**********found**********/ 7 for(p=1; p<= k; p++) 8 for(i=0; i<M; i++)//总共三行,三次循环 9 { temp=a[i][0];//每一行记录第一个元素 10 /**********found**********/ 11 for(j=0; j< N ; j++) a[i][j]=a[i][j+1];//每一个元素,用它一行的后一个元素赋值。 12 /**********found**********/ 13 a[i][N-1]= temp;//每一行最后一个元素赋值 14 } 15 } 16 void main( ) 17 { int x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j; 18 printf("The array before moving:\n\n"); 19 for(i=0; i<M; i++) 20 { for(j=0; j<N; j++) printf("%3d",x[i][j]); 21 printf("\n"); 22 } 23 fun(x,2); 24 printf("The array after moving:\n\n"); 25 for(i=0; i<M; i++) 26 { for(j=0; j<N; j++) printf("%3d",x[i][j]); 27 printf("\n"); 28 } 29 }
//函数fun:根据形参m的值,在m行m列的二维数组中存放如下规律的数据,由main函数输出。输入2,【1234(\n)2468(\n)369 12(\n)48 12 16】
1 #include <conio.h> 2 #include <stdio.h> 3 #define M 10 4 int a[M][M] = {0} ; 5 6 /**************found**************/ 7 void fun(int a[][M], int m)//注意这里 8 { int j, k ; 9 for (j = 0 ; j < m ; j++ ) 10 for (k = 0 ; k < m ; k++ ) 11 /**************found**************/ 12 a[j][k] =( k+1) * (j+1) ; 13 } 14 15 void main ( ) 16 { int i, j, n ; 17 18 printf ( " Enter n : " ) ; scanf ("%d", &n ) ; 19 fun ( a, n ) ; 20 for ( i = 0 ; i < n ; i++) 21 { for (j = 0 ; j < n ; j++) 22 printf ( "%4d", a[i][j] ) ; 23 printf ( "\n" ) ; 24 } 25 }