类型转换问题:返回为整数而不是浮点/类型
Type casting issue: Returning as integer instead of float/type
我正在尝试将平均值返回给已计算每个数组平均元素数的主。Sum 是一个整数,numTweets 是一个整数。我尝试将这些类型转换为双精度或浮点类型,但它仍然返回一个整数值。真实平均值为 167.5,但返回 168。我附上了在main和函数头/定义中调用函数的照片。
功能原型:
double histogram (int length [], int numTweets);
调用函数:
average = histogram (length, numTweets);
printf ("Average length of all tweets = %.fn", average);
函数头/定义:
double histogram (int length[], int numTweets) {
int i, j;
int sum = 0;
double average = 0.0;
for (i = 0; i < numTweets; i++) {
printf("Tweet %d:", i + 1);
for (j = i; j < length[i]; j++) {
printf("*");
}
sum = sum + length[i];
printf("n");
}
average = (float)sum / (float)numTweets;
return average;
}
自从我使用printf
以来已经有一段时间了,但%.f
似乎对待是%.0f
如果您在.
后指定一个数字,或者不指定任何内容而只使用%f
,那么这应该可以解决您的问题。该函数返回正确的值。
https://godbolt.org/z/sG_ns2
来自 : https://en.cppreference.com/w/cpp/io/c/fprintf (粗体是我(
(可选(。后跟整数或 *,或者两者都不指定转换精度。在使用 * 的情况下,精度由 int 类型的附加参数指定。如果此参数的值为负数,则忽略它。如果既不使用数字也不使用 *,则精度为零。有关精度的确切效果,请参阅下表。
相关文章:
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 指针问题:从不兼容的类型"int"分配给"int *"
- 特征返回类型的 pybind11 问题
- 对齐C++字符串类型问题 std::字符串到 TStr
- C 中的类型问题
- dllimport类型问题
- 变量类型问题
- 并排定义指针和类型问题
- C++对数据类型问题
- B-树搜索引用子数据类型问题
- 协议缓冲区,让C#与C++对话:类型问题和模式问题
- 传递类成员函数:类型问题
- 使用受限函数时,尾随返回类型问题
- 如何正确使用模板?我在使用模板时遇到数据类型问题<>
- 链表输入类型问题
- 无序映射:自己的值类型问题
- 将windows c++项目链接到boost命令行体系结构类型问题
- 有数据类型问题的c++阶乘函数
- C++返回类型问题