我想写一个计算平均数的函数,但计算结果总是不对。
program:
float average(int* n[])
{
int i;
int sum = 0;
float average;
for (i = 0; i < 10; i++)
{
sum = sum + n[i];
}
average = sum / (float)10;
printf_s("\n平均值为:%f", average);
}
1.sum结果不对
解决办法:另找变量a,另a=n[i],再另sum=sum+a求和。由此算得sum即正确
2.int型计算后变成float型
解决办法:(1)将sum声明成float型。错误。因为+连接的必须是int型。
(2)在average=sum/10这个语句的10前面加上(float),即改为average=sum/(float)10。正确
修改后代码:
float average(int* n[])
{
int i, a;
int sum = 0;
float average;
for (i = 0; i < 10; i++)
{
a = n[i];
sum = sum + a;
}
average = sum / (float)10;
printf_s("\n平均值为:%f", average);
}