c语言中的数组问题求解

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;
}