c++ - 检查多重性 3
问题描述
我在检查 3 的多重性时遇到了一点问题。它说我的 arr 必须是整数,但在客观上我需要有一个浮点数。如何对浮点数进行此检查“arr[i] % 3 == 0”。
谢谢。
#include <iostream>
#include <cmath>
using namespace std;
float minElement(float arr[], int length) {
float minElement = arr[0];
for (int i = 0; i < length; i++)
{
if (minElement > arr[i])
minElement = arr[i];
}
return minElement;
}
float multiplyArr(float arr[], int length) {
float multiply = 1;
for (int i = 0; i < length; i++)
{
if (arr[i] != 0 && arr[i] % 3 == 0)
multiply *= arr[i];
}
return multiply;
}
int main()
{
float length;
cout << "Enter integer value: ";
cin >> length;
float* p_darr = new float[length];
cout << "Enter values: " << endl;
for (int i = 0; i < length; i++) {
cin >> p_darr[i];
}
cout << "Max. element: " << minElement(p_darr, length) << endl;
cout << "Multiply: " << multiplyArr(p_darr, length) << endl;
delete[] p_darr;
return 0;
}
解决方案
假设
大量漂浮
意思是“大价值”。您不能执行此操作,因为它没有意义。评论(和其他答案)会建议fmod
。我会建议反对。
如果我给你值 3.6x10^12 并问你除以 3 后的余数是多少,你不能给我一个有意义的答案。
3600000000000 % 3
是 0.3600000000001 % 1
是 1.3600000000002 % 2
是 2.
但所有三个值都是 3.6x10^12。
如果您需要整数模值,通常意味着您需要整数精度。浮点值不会提供它。
相反,您应该将输入读取为字符串,逐个字符地解析它,然后计算模数。这是计算机理论课上典型的第一个作业(就像我以前做 TA 一样)。
推荐阅读
- python - 如何使用 tf1.15 的 DNNLinearCombinedClassifier 向标签添加随机噪声?
- python - 从现有字典创建新字典
- r - IF 语句导致函数中的错误结果
- html - 如何仅使用 css 更改 div 的类
- elixir - 通过将模块名传递给函数来包装函数并将其包装到闭包中
- javascript - JS 和 REACT,为什么 gif 没有加载
- python - 使用作为布尔列的数据框列过滤 numpy 矩阵
- php - 如何在元描述中设置字数限制
- javascript - 表单按钮重定向 URL
- r - 在 R 中,data.table 列可以存储什么?请举个简单的例子