帮我分析一道c语言题

来源:百度知道 编辑:UC知道 时间:2024/05/09 03:31:30
(41) 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序
void sort(int a〔〕,int n)
{int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a〔i〕<a〔j〕){t=a〔i〕;a〔i〕=a〔j〕;a〔j〕=t;}
}
main()
{int aa〔10〕={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa〔3〕,5);
for(i=0;i<10;i++)printf("%d,",aa〔i〕);
printf("\n");
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7,6,5,4,9,10,
D)1,2,10,9,8,7,6,5,4,3,
我认为结果应该是5,4,3,2,1,6,7,8,9,10,为什么答案选择的好似C答案啊,想了很久都想不通!!求求热心的网友帮我分析此程序的执行过程,C答案是怎样得来的!!!

sort(&aa〔3〕,5)从aa[3]开始排序,到aa[3+5]结束。所以只对数组元素4~8进行排序,别的不作处理,答案为c

sort(&aa〔3〕,5);从第四个开始排5个数的顺序,肯定是选C啊