求详解求详解

 我来答
wovie89
2016-03-01 · TA获得超过2496个赞
知道小有建树答主
回答量:800
采纳率:77%
帮助的人:368万
展开全部

  这道题有问题,整个程序执行下来只能使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;

  }

  -----------------------

  执行结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式