main()
{int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}
for(i=0;i<4;i++)printf("%d,",a[i][i]);
你一步一步的解释吧
追答前三个for语句加一个if语句就是选择排序的主体,最后一个for语句输出对角元
追问再具体点
追答前三个for语句加一个if语句就是选择排序的主体,最后一个for语句输出对角元
要不聊天吧,讲的详细点
输出1,6,5,7
5和7是怎么得到的
第三列3526,排序后2356,所以第三行第三列是5,同理可得7
对矩阵a(j)(i)
第一句for是选择要排序的列i(0-3),
第二句是确定一个要放置的位置j(0-2,因为最后一个元素不需要在排序了),
第三句for与后面的if语句是将它与后面的元素逐个比较并将最小的元素放在这个位置
然后,循环结束,最后一个for语句再打印对角线上的元素。
应该够详细了吧~~~