用指针来做二维数组回形遍历
如题,老师布置的作业。用二维数组直接做可以做出来,但是怎么改成指针?(我只会把输出改成指针,但是主要思路根本没变。。)
用count这个变量来记录已经输出的个数。
用指针做我想了个思路:编四个函数“指针向上,向下,向左,向右”每运行一轮将row--,col--,但是最后编到崩溃。。希望各位大神帮助。。
#include <stdio.h>
int main()
{
int a[100][100];
int row,col;
int i,j,n,count=0;
scanf("%d%d",&row,&col);
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
scanf("%d",&a[i][j]);
}
}
for (n=0;;n++)
{
for(i=n;i<col-n;i++)
{
printf("%d\n",*(a[n]+i));
count++;
}
if(count==row*col)
break;
for(j=n+1;j<row-n;j++)
{
printf("%d\n",*(a[j]+col-n-1));
count++;
}
if(count==row*col)
break;
for(i=col-2-n;i>=n;i--)
{
printf("%d\n",*(a[row-n-1]+i));
count++;
}
if(count==row*col)
break;
for(j=row-2-n;j>n;j--)
{
printf("%d\n",*(a[j]+n));
count++;
}
if(count==row*col)
break;
}
return 0;
}