实验四 参考答案(参考答案)
(1) 设计程序sy5-1.c,从键盘上输入一个3行3列矩阵各个元素的值,输出其主对角线元素和反向对角线元素之和。
算法分析:
对角线上的元素,1维和2维下标相同,反对角线元素,如果行下标为i,列下标就为2-i;
参考答案:
#include
int main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j,sum=0;
for(i=0;i<3;i++)
sum=sum+a[i][i]+a[i][2-i]; //a[i][i]当前行的主对角线元素
//a[i][2-i]当前行的反对角线元素
printf("矩阵的正、反对角线元素之和为:%d\n",sum);
return 0;
}
运行结果:
(2) 设计程序sy5-2.c,找出一个3×4的矩阵中的最小值及其位置。
算法分析:
首先把二维数组中的第一个数即a[0][0]看成最小值,然后逐行逐列的去遍历每个元素,逐一判断每一个元素是否比最小值还好小,如果是,就改写最小值,并记录他的下标。 参考答案:
#include
#include
int main()
{
int a[3][4]={{10,21,41,5},{12,15,46,35},{40,21,26,30}};
int i,j,row,colum,min;
printf("数组a:\n");
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%5d",a[i][j]);