|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目是写一个可以输入n个数,并传入相应值,求这n个数平均值的函数。
我找不出代码哪里出了问题,用vs2022写的,没有报错提醒,但是无论输入什么数,最后printf的值都是0.000000,请教一下各位大佬能帮我看看哪里出问题了吗?应该怎么改呢?
#include <stdio.h>
float average(float* p, int a);
int main() {
int n, i,ave;
float sub[100];
scanf_s("%d", &n);//传入数字个数
for (i = 0; i < n; i++)//输入3个数字
{
scanf_s("%f", &sub[i]);
}
ave = average(sub, i - 1);
printf("平均值是%f", ave);
return 0;
}
float average(float *p,int a)
{
int count,sum=0,ave;
for (count = 0;count <= a;count++) //对传入的三个数字进行求和
{
sum += *(p + count);
}
ave = sum / (a+1);//用总和除以数量,求得平均值
return ave;
}
本帖最后由 jackz007 于 2022-12-4 01:00 编辑
- #include <stdio.h>
- float average(float* p, int a);
- int main()
- {
- int n, i ;
- float ave , sub[100] ; // 【错误-01】:把 ave 定义为 int,用于浮点数计算的变量不可以定义为 int
- scanf_s("%d", &n) ;
- for (i = 0; i < n; i++)
- {
- scanf_s("%f", &sub[i]);
- }
- ave = average(sub , n); // 【问题-01】:数组元素数量使用 n,名正言顺为什么要用 i - 1?
- printf("平均值是%f", ave);
- return 0;
- }
- float average(float *p,int a)
- {
- int count ;
- float sum = 0 , ave ; // 【错误-02】:用于浮点数计算的变量不可以用 int
- for (count = 0 ; count < a ; count ++) // 【问题-01】:调用函数时,数组元素数量用 n 这里,循环条件使用 count < a 与之前后呼应
- {
- sum += * (p + count) ;
- }
- ave = sum / (a+1) ;
- return ave;
- }
复制代码
|
|