求详解求详解
1个回答
展开全部
这道题有问题,整个程序执行下来只能使10排在最后边,那个函数f里应该还有一层关于j的for循环才行
正确代码如下:
#include<stdio.h>
struct S{
int n;
int a[20];
};
void f(struct S *p){
int i, j, t;
for(j=0;j<p->n;j++){
for(i=0; i < p->n-1; i++){
if(p->a[i] > p->a[j]){
t = p->a[i];
p->a[i] = p->a[j];
p->a[j] = t;
}
}
}
}
int 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]);
}
return 0;
}
-----------------------
执行结果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询