有以下程序: main() { int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t; for(i=0;i<3;i++) for(k=i+i;k<4;k++

admin2011-06-13  22

问题 有以下程序:    main()    {  int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;    for(i=0;i<3;i++)    for(k=i+i;k<4;k++)if(a<a[k][k]){t=a;a=a[k][k];a[k][k]=t;}    for(i=0;i<4;i++)printf("%d,",a[0]);    }    程序运行后的输出结果是(       )。

选项 A、6,2,1,1,
B、6,4,3,2,
C、1,1,2,6,
D、2,3,4,6,

答案B

解析 该程序实现对二维数据反对角线上的元素从大到小的排序,并输出排序后的数组的第一行。外层循环变量i表示第i行第i列的数字,内层循环变量k表示第i+1行第i+1列的数字,if语句对相关数值进行比较和交换,最后数组变为a[4][4]={{6,4,3,2,},{8,2,5,7,},{3,7,1,5,},{4,8,6,1,}},并将第一行输出。
转载请注明原文地址:https://kaotiyun.com/show/qjPp777K
0

最新回复(0)