一个关于二维数组的问题,帮忙看一下哪出问题了。
这个小程序就是为了删除二维数组里面一个已有的数。当在前面对t赋值的时候,它可以得到正确的答案,而用scanf获得一个数的时候就不行。下面是代码。
#include<stdio.h>
main()
{
int a[4][4]={1,5,6,7,8,9,10,13,17,32,76,89,98,99,100};
int i,j,t,p,q,c[3],k=0,m=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%3d ",a[i][j]);
printf("\n");
}
scanf("%d",&t);
for(i=1;i<4;i++)
c[i]=a[i][0];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(t==a[i][j])
{
for(p=i;p<4;p++)
{
if(p!=i)
for(q=1;q<4;q++)
a[p][q-1]=a[p][q];
else
for(q=j;q<3;q++)
a[p][q]=a[p][q+1];
}
k=1;
break;
}
if(k==1)
break;
}
for(p=3;p>i;p--)
a[p-1][3]=c[p];
a[3][2]=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("%3d ",a[i][j]);
m++;
if(m==14)
break;
}
printf("\n");
}
}