首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言-数组平均值与排序

目标

输入一个正数数组,求平均值,

并根据平均值重新排序,

大于平均值的数前置,

小于等于平均值的值后置。

命令行

#include< stdio.h>

调用输入输出函数库

#include

调用文件函数库

#define N 10

宏定义,简单理解为N=10

~

定义函数

double fun (double *x)

/*定义的fun函数有3个功能,平均值、前置和后置*/

{

int i,j;double s,av,y[N];

/*定义临时数组y[N],用于储存重新排序后的数组元素*/

s=0;

for(i=0;i

/*累加,为平均值做准备*/

av=s/N;

/*求平均值,还有一种方法是av=av+x[i]/N*/

for(i=j=0;i

if(x[i]>av)

/*筛选出大于平均值的数,放入y[j++]中,配合i++,j也++。并把大于平均值的数重新赋值为-1或者其他负数,区分其他小于等于平均值的正数*/

for(i=0;i

if(x[i]!=-1)

y[j++]=x[i];

/*筛选出不等于-1的数,即小于等于平均值的数,再排在y[j++]的后面。

至于此处筛选小于等于平均值,为什么要用-1替换?而不直接用x[i]

for(i=0;i

x[i]=y[i];

/*再用重新排序的y[i]替换x[i],即完成了x[i]的排序。*/

return av;

/*令fun(x)函数的结果为平均值av*/

}

~

主函数(调用)

void main()

{

int i;double x[N];

for(i=0;i

/*输入x[i]的元素为0到49的随机数,4.0表示用空格间隔*/

printf("\n");

printf("\nThe average is:%f\n",fun(x));

/*输出平均值*/

printf("\nThe result :\n",fun(x));

/*这里可以不要输出项fun(x),理解输出固定字符串The result:*/

for(i=0;i

printf("%4.0f",x[i]);

/*输出重新排序后的x[i]*/

printf("\n");

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220308A0DFCD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券