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 }

 

posted @ 2019-03-03 17:11  小大大小  阅读(1163)  评论(0编辑  收藏  举报