急问c语言中 y[j++]=x[i];x[i]=-1; 是什么意思啊?好多的机考填空题中都有这句 什么意思呢 谢谢大家了

帮忙举个例子谢谢哦我把题目写全一些这是一道机考填空题给定程序中函数fun的功能是;计算形参x所指数组中N个数的平均值,将所指数组中大于平均值的数据移至数组的的前部,小于等... 帮忙举个例子 谢谢哦 我把题目写全一些 这是一道机考填空题
给定程序中 函数fun的功能是;计算形参x所指数组中N个数的平均值,将所指数组中大于平均值的数据移至数组的的前部,小于等于平均值的移至所致数组的后部,平均值作为函数返回,在主函数中输出平均值和移动后的数据。
例如:46 30 32 40 6 17 45 15 48 26 平均值是30.500000
移动后输出的数据:46 32 40 45 48 30 6 17 15 26
#defin N 10
double fun(double *x)
{ int i,j; double s,av,y[N];
s=0;
for(i=o;i<N;i++) s=s+x[i];
/*********found*********/
av=s/n;
for(i=j=p;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)j[j++]=x[i];
for(i=0;i<N;i++)x[i]=y[i];
return=av;
}
展开
 我来答
BossWanna
推荐于2017-11-22 · TA获得超过119个赞
知道答主
回答量:140
采纳率:0%
帮助的人:71.5万
展开全部
for(i=j=p;i<N;i++)
if(x[i]>av){
y[j++]=x[i];x[i]=-1;} 就是 如果x[i]比平均数av大 那么就先放到数组y里面(从前往后的放)并将x[i]的值设为-1

for(i=0;i<N;i++)
if(x[i]!=-1)y[j++]=x[i]; 现在已经将x数组里面比平均属大的放到y里并且是左面,现在将x数组里比平均数小的放入y右边 (注应该是y[j++]而不是j[j++])

for(i=0;i<N;i++)x[i]=y[i]; 最后把数组y里的值传给x 那么x就排好顺序了
清心又谦恭丶布丁9
2009-08-14 · TA获得超过6604个赞
知道小有建树答主
回答量:1247
采纳率:100%
帮助的人:1863万
展开全部
y[j++]=x[i];x[i]=-1;相当于
y[j]=x[i];x[i]=-1;j++
主要就是这个y[j++]这里的j++先取当前j的值,然后在运算后对j加上1
所以效果就和上面的一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Constantly素言
2018-03-11
知道答主
回答量:2
采纳率:0%
帮助的人:1726
展开全部
X[i]=-1是把大于平均数的数组都记为-1,目的是区分开那些不大于平均数的数组 这样的话 如果X[i]!=-1 那么就是小于平均数的那些 这样再做一个循环就把他们都赋值给Y数组了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玛丽城市
2009-08-14 · 贡献了超过134个回答
知道答主
回答量:134
采纳率:0%
帮助的人:0
展开全部
fa
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式