有二维数组{{1,2,3},{4,5,6},{7,8,9}}编写一个程序,通过指针移动,先按顺序输出数组,再按逆序输出数组

2024-12-21 21:18:47
推荐回答(4个)
回答1:

#include
int main(int argc, char* argv[])
{
int y[][3]={{1,2,3},{4,5,6},{7,8,9}};
int (*p)[3]=y;
int i,j,*q=&y[2][2];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",*(*(p+i)+j));
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",*q--);
printf("\n");
}
return 0;
}

回答2:

int[,] arr = new int[3, 3];
int iCount = 1;
for (int i = 1; i < 4; i++)
for (int j = 1; j < 4; j++)
arr[i - 1, j - 1] = iCount++;
string str = "";
for (int i = 1; i < 4; i++)
for (int j = 1; j < 4; j++)
str += arr[i - 1, j - 1].ToString();
string str1 = "";
for (int i = 3; i > 0; i--)
for (int j = 3; j > 0; j--)
str1 += arr[i - 1, j - 1].ToString();
MessageBox.Show(str + str1);

回答3:

#include
int main()
{
int y[][3]={{1,2,3},{4,5,6},{7,8,9}};
int (*p)[3]=y;
int i,j,*q=&y[2][2];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",*(*(p+i)+j));
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",*q--);
printf("\n");
}
return 0;
}

回答4:

这个不太清楚