C语言数组程序问题,高手帮解决一下
问题是这样的,要求定义一个二维数组,然后,逆序输出,本人刚接触C语言,指针什么的都没学,最好用FOR循环做
程序代码:#include "stdio.h"
void main()
{ int array[5][5];
int i,j;
printf("Please input the array number")
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&arrayi][j]);/*输入5*5的数组*/
for(i=4;i>=0;i--) /*逆序输出*/
{
for(j=4;j>=0;j--)
printf("%d\t",array[i][j]);
printf("\n");
}
}只是逆序输出的话,你对i,j赋值的时候从数组的最后一个数开始,你先想想你正向输入时是什么输入了就能明白了
程序代码:#include "stdio.h"
void main()
{ int a[3][3]={8,9,7,5,6,3,2,1,4};
int b[9];
int i,j=0,k,temp;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
temp=i+j+2*i;//一位数组 与其对应长度二维数组的关系
b[temp]=a[i][j];//把数据保存到一位数组
}
for(i=0;i<3*3-1;i++)
{
k=i;
for(j=i+1;j<3*3;j++)//排序
{
if(b[j]>b[k])
k=j;
if(i!=k)
{
temp=b[i];
b[i]=b[k];
b[k]=temp;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
temp=i+j+2*i;//赋值给二维数组 并输出
a[i][j]=b[temp];
printf("%d ",a[i][j]);
}
printf("\n");
}
}楼主 可以自己去测试
