为什么平均计算程序在小数点后显示不同的结果

  • 本文关键字:显示 结果 小数点 计算程序 c
  • 更新时间 :
  • 英文 :

**While runnning the C program the output is 33.000 

同时正确答案是33.200哪里出了问题?float有任何数据返回类型问题,所以我应该使用双重数据类型吗?我被卡住了**

#include <stdio.h>
float passingmarksArrray(int studentmarks[5]);
int main(){
float studentmarks_Average ;
int marks[5] = {21, 24, 32, 45, 44};
studentmarks_Average  = passingmarksArrray(marks);
printf("The average marks of the student is %.3f n", studentmarks_Average );
return 0;
}

float passingmarksArrray(int studentmarks[5]){
int i;
int sumofmarks = 0;
float average;
for (int i = 0; i < 5; ++i)
{
sumofmarks = sumofmarks + studentmarks[i];
}
average = (sumofmarks / 5) ;
return average;
}

问题是,语句

(sumofmarks / 5) ;

是整数除法,不会产生浮点结果。要获得浮点结果,您需要强制执行浮点除法,方法是说

(sumofmarks / (float)5) ;

(sumofmarks / 5.0) ;

在表达式中(平均值=(sumofmarks/5((

sumofmarks/5返回一个整数值,然后将其转换为浮点值并存储在average中。

sumofmarks/5.0返回浮点值。

相关内容

  • 没有找到相关文章

最新更新