1
1.分别用地址法(通过数组名计算元素地址)、指针法改写第9周的上机作业程序,来实现对二维数组的访问和操作:
编写一个主程序,生成一个菜单界面,当输入1时,调用矩阵赋值函数,为5*5的矩阵赋初值;当输入2时,调用矩阵转置函数,对该矩阵进行转置操作;当输入3时,将该矩阵上三角所有元素值变成0;当输入4时,求该矩阵对角线所有元素的平均值;当输入5时,将该矩阵副对角线元素变成1,当输入0时,退出程序。
#include <stdio.h>
int a[5][5];
void input(int (*x)[5])//地址法
{
int i=0,j=0;
printf("请输入矩阵初值:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
scanf("%d",*(x+i)+j);
}
printf("初矩阵为:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%d ",*(a[0]+5*i+j));
if(j==4)
printf("\n");
}
}
}
void change(int (*p)[5])//指针法
{
int i,j,b[5][5]={0},*q[5];
for(i=0;i<5;i++)
q[i]=b[i];
for(i=0;i<5;i+&#