首页 新闻 会员 周边

C语言利用指针进行数组移位,求解

0
[已关闭问题] 关闭于 2021-12-15 21:29

include <stdio.h>

define M 100

//移动函数。指针p指向n行m列的二维数组
void Move(int (p)[M],int n,int m,int k)
{
int i,j,c,b;
int x[100][100];
int y[100][100];
for (i=0;i<n;i++)
for (j=0;j<(m-k);j++)
x[i][j]=
((p+i)+j);//将需要后移的存储
for (i=0;i<n;i++)
for (c=0,j=(m-k);c<k,j<m;c++,j++)
y[i][c]=
((p+i)+j);//将需要前移的存储
for (i=0;i<n;i++)
for (j=0;j<k;j++)
((p+i)+j)=y[i][j];//将前移的移过去
for (i=0;i<n;i++)
for (j=k,b=0;j<n,b<(m-k);j++,b++)
((p+i)+j)=x[i][j];//将后移的补上
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
printf ("%d ",
((p+i)+j));
}
printf ("\n");
}
}
int main()
{
int n,m,k,i,j;
int (
q)[100];
scanf ("%d %d %d",&n,&m,&k);
int a[100][100];
q=a;
for (i=0;i<n;i++)
for (j=0;j<m;j++)
scanf ("%d",q);//((q+i)+j));
Move (q,n,m,k);
return(0);
}

wedy1234的主页 wedy1234 | 初学一级 | 园豆:6
提问于:2021-12-15 21:29
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册