网站首页 > 技术文章 正文
①目标
输入一个正数数组,求平均值,
并根据平均值重新排序,
大于平均值的数前置,
小于等于平均值的值后置。
~
②命令行
#include< stdio.h>
调用输入输出函数库
#include<stdlib.h>
调用文件函数库
#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<N;i++) s=s+x[i];
/*累加,为平均值做准备*/
av=s/N;
/*求平均值,还有一种方法是av=av+x[i]/N*/
for(i=j=0;i<N;i++)
if(x[i]>av)
{y[j++]=x[i];x[i]=-1;}
/*筛选出大于平均值的数,放入y[j++]中,配合i++,j也++。并把大于平均值的数重新赋值为-1或者其他负数,区分其他小于等于平均值的正数*/
for(i=0;i<N;i++)
if(x[i]!=-1)
y[j++]=x[i];
/*筛选出不等于-1的数,即小于等于平均值的数,再排在y[j++]的后面。
至于此处筛选小于等于平均值,为什么要用-1替换?而不直接用x[i]<=av?我也不知道,试了一下结果没变,猜测可能是为了规避重复,希望有大神解答*/
for(i=0;i<N;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<N;i++)
{x[i]=rand()%50;printf("%4.0f",x[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<N;i++)
printf("%4.0f",x[i]);
/*输出重新排序后的x[i]*/
printf("\n");
}
- 上一篇: C语言进阶教程:指针数组与数组指针
- 下一篇: Excel三种方法多条件筛选,你都用过吗?
猜你喜欢
- 2025-06-25 C语言入门到精通第027讲-C语言传递数组给函数
- 2025-06-25 「C语言」指针进阶第三站,数组指针
- 2025-06-25 C语言基础知识:指针和数组的区别是什么?
- 2025-06-25 合并两个数组
- 2025-06-25 C语言100题集合023-输入月份号并输出英文月份名
- 2025-06-25 C语言字符数组和字符串
- 2025-06-25 C语言100题集合027-二维数组的经典案例,非常重要
- 2025-06-25 C语言中的一维数组理解
- 2025-06-25 Excel三种方法多条件筛选,你都用过吗?
- 2025-06-25 C语言进阶教程:指针数组与数组指针
- 06-25C语言入门到精通第027讲-C语言传递数组给函数
- 06-25「C语言」指针进阶第三站,数组指针
- 06-25C语言基础知识:指针和数组的区别是什么?
- 06-25合并两个数组
- 06-25C语言100题集合023-输入月份号并输出英文月份名
- 06-25C语言字符数组和字符串
- 06-25C语言100题集合027-二维数组的经典案例,非常重要
- 06-25C语言中的一维数组理解
- 最近发表
- 标签列表
-
- axure 注册码 (25)
- exploit db (21)
- mutex_lock (30)
- oracleclient (27)
- think in java (14)
- javascript权威指南 (19)
- nfs (25)
- componentart (17)
- yii框架 (14)
- springbatch (28)
- oracle数据库备份 (25)
- iptables (21)
- 自动化单元测试 (18)
- dir (26)
- connectionstring属性尚未初始化 (23)
- output (32)
- panel滚动条 (28)
- centos 5 4 (23)
- sql学习 (33)
- http error 503 (21)
- pop3服务器 (18)
- 图表组件 (17)
- android退出应用 (21)
- 图片透明度 (20)
- c 数组 (33)