c语言想要做到将一到五十存入25乘2数组,并将奇数逆序存放入5乘5的数组,不知道下面步骤哪里出了问题,请求友友们指点一二
#include<stdio.h>
int main()
{
int i,j,a[25][2],b[5][5];
printf("输出一个1到50的矩阵:\n");
for(i=0;i<25;i++)
{
for(j=0;j<2;j++)
{
a[i][j]=i+j+i+1;
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("将所有奇数按逆序打印输出:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
b[i][j]=a[24-i-j][0];
printf("%4d%4d",b[i][j]);
}
printf("\n");
}
return 0;
}
252数组,并将奇数逆序存放入55的数组
这个 252, 55 是什么意思呢?
#include <stdio.h>
int main()
{
int i, j, a[25][2], b[5][5], t = 1;
printf("输出一个1到50的矩阵:\n");
for (i = 0; i < 25; i++)
{
for (j = 0; j < 2; j++)
{
a[i][j] = t++;
printf("%4d", a[i][j]);
}
printf("\n");
}
printf("将所有奇数按逆序打印输出:\n");
t = 24;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
// b[i][j] = a[24 - i - j][0];
b[i][j] = a[t--][0];
printf("%4d", b[i][j]);
}
printf("\n");
}
return 0;
}
修改如下,供参考:
#include<stdio.h>
int main()
{
int i,j,a[25][2],b[5][5],k,*p;
printf("输出一个1到50的矩阵:\n");
for(i=0;i<25;i++)
{
for(j=0;j<2;j++)
{
a[i][j]=2*i+j+1; //i+j+i+1; 修改
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("将所有奇数按逆序打印输出:\n");
for(p=a[0],k=24,i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
b[i][j]= p[2*k--]; // a[24-i-j][0]; 修改
printf("%4d",b[i][j]);//修改 printf("%4d%4d",b[i][j]);
}
printf("\n");
}
return 0;
}