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

如题所述

#include<stdio.h>
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;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-28
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);
第2个回答  2011-11-29
#include<stdio.h>
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;
}
第3个回答  2011-11-29
这个不太清楚