求高手解答一道C语言中的结构体问题: struct S{int n:int a[20];}; void f(struct S *p) 接下

{ inti,j,t; for(i=0;i<p->n-1;i++) for(j=i+1;j<p->n-1;j++) if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j] p->a[j]=t }} main(){ int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++) printf("%d",s.a[i]);}程序输出后的结果是 3 求具体执行过程,谢谢!
问题补充:我现在确定是:通过两层for循环,用冒泡法排序,但有一点我不明白,排下来也不应该是3最小啊?谁能帮我解答呢??

第1个回答  2013-03-30
结果是12345678109
只对前9个进行冒泡排序
因为 for(i=0;i<p->n-1;i++)
第2个回答  2013-03-29
for(j=i+1;j<p->n;j++)
相似回答