全部问题 > 当前问题

7-14 这题答案不对吧?

每次for循环都会执行 j=0


本来想初始化s=0并且自增,但是做不来


结果瞎打还对了……傻了

火股 2016-3-22 14:53:43

共 4 个回答

火股 2016-3-22 14:53:48

#include  <stdlib.h>
#include  <stdio.h>
#define   N   10
double fun(double  *x)
{ int  i, j;    double  s, av, y[N];
  s=0;
  for(i=0; i<N; i++)  s=s+x[i];
/**********found**********/
  av=s/N;
  for(i=j=0; i<N; i++)
    if( x[i]>av ){
/**********found**********/
      y[j++]=x[i]; x[i]=-1;}
  for(i=0; i<N; i++)
/**********found**********/
    if( x[i]!= -1) y[j++]=x[i];
  for(i=0; i<N; i++)x[i] = y[i];
  return  av;
}
main()
{ int  i;     double  x[N]= {46,30,32,40,6,17,45,15,48,26};
  for(i=0; i<N; i++) printf("%4.0f ",x[i]);
  printf("\n");
  printf("\nThe average is: %f\n",fun(x));
  printf("\nThe result :\n",fun(x));
  for(i=0; i<N; i++)  printf("%5.0f ",x[i]);
  printf("\n");
}

最佳答案

湖南巡抚骆秉章 2016-3-22 15:08:01

不是的,j=0,只执行一次的,你是搞糊涂了,比如说for(i=0;i<5;i++) 每次循环都执行i=0吗,显然不是的,同样的道理嘛

火股 2016-3-23 07:48:58

回复 湖南巡抚骆秉章:啊……哦——我搞糊涂了……

湖南巡抚骆秉章 2016-3-23 12:34:05

回复 火股:嘿嘿

问题来自: 填空题真题