C语言中如何将随机生成的二维数组的第一行与第五行对调后显示新的数组?

二维int数组a[5][5],完成下列要求
(1)数组生成:数组每个元素的值随机产生(0-100的随机数)。
(2)显示数组各元素,要求整齐排列。
(3)将第1与第5行对调后,再显示新的数组
前两问程序如下,第三问怎么搞?

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

void main()

{

   int i=0,j=0;

   int a[5][5]={0};

   srand(time(NULL));

   for(i=0;i<5;i++)

   for(j=0;j<5;j++)

 a[i][j]=rand()%100+0;

   printf("二维数组a为:\n");

   for(i=0;i<5;i++)

   {

   for(j=0;j<5;j++)

   printf("%d\t",a[i][j]);

   printf("\n");

   }

}




#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
void main()
{
   int i=0,j=0;
   int a[5][5]={0};
   srand(time(NULL));
   for(i=0;i<5;i++)
   for(j=0;j<5;j++)
 a[i][j]=rand()%100+0;
   printf("二维数组a为:\n");
   for(i=0;i<5;i++)
   {
   for(j=0;j<5;j++)
   printf("%d\t",a[i][j]);
   printf("\n");
   }  
    for(i=0;i<5;i++)
    {
        j = a[0][i];
        a[0][i] = a[4][i];
        a[4][i] = j;
    }
    for(i=0;i<5;i++)
   {
   for(j=0;j<5;j++)
   printf("%d\t",a[i][j]);
   printf("\n");
   }  
}
 
 

用temp作为中间变量。然后交换。或者直接调用swap交换。