丝域养发馆价目表图片:一道C语言题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 02:58:13
输入5行5列数组,找出对角线上最小数并确定它的位置
谢谢

#include <stdio.h>
void main()
{int i,j,min1,min2,
m1=0,n1=0,m2=0,n2=4;
long a[5][5];
printf("please input 25 number:\n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%ld",&a[i][j]);
printf("输入的5*5的矩阵是:\n");
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%d\t\t",a[i][j]);
printf("\n");};

min1=a[0][0];min2=a[0][4];
i=1;j=1;
do{if(min1>a[i][j]) {;min1=a[i][j];m1=i;n1=j;};i++;j++;

}while(i<=4&&j<=4);
i=1;j=3;
do{ if(min2>a[i][j]) {min2=a[i][j];m2=i;n2=j;};i++;j--;

}while(i<=4&&j>=0);

printf("主对角线的最小元是%d其行为%d列为%d\n",min1,m1+1,n1+1);
printf("副对角线的最小元是%d其行为%d列为%d\n",min2,m2+1,n2+1);
}

自我感觉编的不太好,高手多指教!!

假定数组a[5][5],然后就在两个集合中比较大小吧,
1.集合1{a[0][0], a[1][1], a[2][2], a[3][3], a[4][4]};
2.集合2{a[4][0], a[3][1], a[2][2], a[1][3], a[0][4]}。

把两个对角线的数分别抽出定义两个数组再比较