新人求助呀-c语言编程
要求:在程序中定义一个3*4的整型二维数组arr,定义的同时进行初始化;定义两个指针p和q:int *p,(*q)[4];①请写出对一级指针p(列指针)的赋值及用p输出二维数组所有元素的循环语句;
②请写出对行指针q的赋值及用q利用行指针q输出二维数组所有元素的循环语句。
求帮助
/*指针实现M*N数组array[M][N]的练习 *指针*p实现 *指针数组*q[N]实现 *array实现 */ #include <stdio.h> #define M 5 #define N 6 int main() { int array[M][N]; int cout=1; int *p,*q[N],**r; int k=0,l=0,v=0; for(int x=0;x<M;x++) //数组用1,2,3。。。初始化 { for(int y=0;y<N;y++) { array[x][y]=cout; cout++; } } p=&array[0][0]; //用指针P实现数组输出 for(int i=0;i<M*N;i++) { printf("%4d",*(p+i)); k++; if(!(k%N)) //实现换行 printf("\n"); } printf("\n"); for(int j=0;j<N;j++) //列指针q的赋值 { q[j]=&array[0][j]; } for(int s=0;s<M;s++) { for(int t=0;t<N;t++) { printf("%4d",*(q[t]+N*s)); //用列指针q实现数组输出 l++; if(!(l%N)) //实现换行 printf("\n"); } } printf("\n"); for(int c=0;c<M;c++) { for(int d=0;d<N;d++) { printf("%4d",*(*(array+c)+d)); v++; if(!(v%N)) //实现换行 printf("\n"); } } }