c语言-C语言fun函数计算数组N个数的平均值,并将小于平均值且最接近平均值的数作为函数值返回,求教问题

问题描述

C语言fun函数计算数组N个数的平均值,并将小于平均值且最接近平均值的数作为函数值返回,求教问题

#include
#include
#define N 10
double fun(double x[],double *av)
{ int i,j; double d,s;
s=0;
for(i=0; i<N; i++) s = s +x[i];
*av=s/N;
d=32767;//求教这个d是什么含义呢?为何取值32767?
for(i=0; i<N; i++)

if(x[i]<*av && *av - x[i]<=d)// x[i]<=d这个又是什么意思呢?
{
d=*av-x[i];

j=i;
}
return x[j];
}
main()
{ int i; double x[N],av,m;
for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);}
printf("n");
m=fun(x,&av);
printf("nThe average is: %fn",av);
printf("m=%5.1f ",m);
printf("n");
}

=====程序要求fun函数计算数组N个数的平均值,并将小于平均值且最接近平均值的数作为函数值返回。d=32767;//求教这个d是什么含义呢?为何取值32767?*av - x[i]<=d这个又是什么意思呢?

解决方案

32767,是int类型在32位系统下的取值范围,他是为了不超出这个范围,以免报错

解决方案二:

d代表x[i]与平均值的差,其初始值值可以是一个足够大的数字(根据具体情况而定)。av-x[i]<=d之后对d进行更新,保证了当前x[i]与平均数差值d最小,而j则是该数的下标。故遍历完成后,返回x[j]即是与av差距最小的数。

时间: 2024-09-19 09:14:44

c语言-C语言fun函数计算数组N个数的平均值,并将小于平均值且最接近平均值的数作为函数值返回,求教问题的相关文章

php sizeof() 函数计算数组长度

在php里面我们来统计数据的长度有常用用的二个函数php sizeof() 与count()它们的效果是一样的, 语法: sizeof(arrayname); 提示和说明 注:此功能可能会返回0 ,如果一个变量没有设置,但也可能返回0 ,如果一个变量包含一个空数组.该isset ( )函数可以用来测试一个变量是否设置. 下面我们就来看看sizeof的实例吧. <?php $people = array("a", "Joe", "b", &q

c语言-C语言编写一个输出的函数

问题描述 C语言编写一个输出的函数 编写一个函数,输出数组,要求通过参数指定每行输出的元素个数,以 及每个元素占有的列数. 假设自己定义一个参数为x 那么打印的时候printf(""%xd"")怎么用一个参数来满足每次打印时候 元素所占列数的不同呢 解决方案 #include <stdio.h>void display(int data[] int n int cols int w){ for (int i = 0; i < n; i++) { p

c语言-C语言小白问题求大神指教

问题描述 C语言小白问题求大神指教 #include #include unsigned fun(int w) { int a; int i; i=1; a=w; while(a==0) { a=a/10; i++; } w=w%pow(10,i); return w; } unsigned main() { int w; printf("please enter a number:n"); scanf("%d",&w); printf("the

asp.net中如何编写hash函数计算中文的hash值使之生成二进制数01

问题描述 asp.net中如何编写hash函数计算中文的hash值使之生成二进制数01 asp.net中如何编写hash函数计算中文的hash值使之生成二进制数01 解决方案 产生16进制数,每一位都可以查表得到特定的4位二进制数. 解决方案二: "使之生成二进制数01"是什么意思?一般来说有中文的固定编码和hash函数就可以生成hash了 解决方案三: 给你个样子吧 using System; using System.Security.Cryptography; namespace

PowerShell函数中限制数组参数个数的例子_PowerShell

本文介绍PowerShell自定义函数时,可以使用数组来传递多个参数.数组传递参数时,参数个数本身无法限制,PowerShell函数提供了一个方法来限制数组中参数的个数. PowerShell函数可以接受数组作为输入参数.而且不需要将数组定义好后再传给PowerShell函数,而可以直接将一个逗号分隔的字符串数组当作参数来传递,如:Add-User -UserName 'splaybow1','splaybow2','splaybow3'.这个函数的定义如下: 复制代码 代码如下: functi

c语言程序题-C语言程序设计题,函数,二维数组

问题描述 C语言程序设计题,函数,二维数组 某班期末考试科目为数学,英语,物理,有最多不超过30人参加考试,编写程序实现成绩排序和成绩查询 要求①用函数编程实现计算每个学生的总分和平均分 ②用函数编程实现按总分成绩由高到低排出成绩名次 ③用函数编程打印出名次表,表格内包括学生编号,各科分数,总分和平均分 解决方案 你不会自己写???逗我?? 解决方案二: 好好写作业.........不要偷懒 解决方案三: 自己写吧,小伙子!!! 解决方案四: 建议楼主自己写吧,写好了碰到问题再发上来 解决方案五

c语言-C语言数组作为参数传入子函数

问题描述 C语言数组作为参数传入子函数 对不起,可能我没表达清楚,我想问,数组作为参数传入子函数为什么不是作为形式参数传入,请你看程序运行结果,如果数组作为形式参数传入子函数,那么形式参数的值并不会影响原来main函数中的值,但是实际上,main函数中数组原来的值已经被修改了,这是因为数组传入的是地址(指针),我的问题就在这里,传入的是指针为什么不是用完就扔的形式参数. 这与c语言的设计有关是吗?内部有什么机制吗? 解决方案 首先提一下std C 调用约定,参数的传递使用栈. 在传递时首先将参数

编程c语言-c语言三维数组做函数输入变量,函数的形参怎么写?

问题描述 c语言三维数组做函数输入变量,函数的形参怎么写? 比如uint8_t cube[5][5][5];要在函数内处理数组内的数据并能返回值,肯定是传入三维数组的地址.函数定义时形参不知道怎么写才行??void process(uint8_t ????); 解决方案 用uint8_t * cube就可以了. 解决方案二: 需要用指针不然改的都是形参的临时内容,或者直接操作全局变量 解决方案三: 其实传入一个地址指针就可以实现数据同步了.*(&cube) 解决方案四: C语言:变量和函数引用的

c语言-C语言计算字符长度的函数 strlen的问题

问题描述 C语言计算字符长度的函数 strlen的问题 下面这段: int main(){ char s[]="hello world"; char *n; n=&s[0]; int t=strlen(n); printf("%d ",t); } 得到字符长度是11,但是如果把char s[]="hello world";改为char s[11]="hello world"; 最后的值就会变成17,多出来的6是怎么回事