ios - 将 double 类型的数组元素相乘

标签 ios c arrays

我有这个数组。

double numbers[] = {40.0, 8.0, 45.0, 55.0, 30.0, 10.0, 20.0};

和一些乘数

CGFloat multiplier = 2.67;

我想将数字数组的每个元素乘以乘数。 所以数组会像

double numbers[] = {106.80, 21.36, 120.15, 146.85, 80.1, 26.7, 53.4};

我收到“将‘double’发送到不兼容类型‘id _Nonnull’的参数”。

在该数字数组中找到 max no 的最简单方法是什么。

最佳答案

C 数组比 ObjC NSArray 更快,但当前的设备速度相当快,因此使用对象编写代码通常更好,虽然损失了速度,但提高了可读性。

您的问题的解决方案“我想将数字数组的每个元素乘以乘数。在该数字数组中找到最大否的最简单方法是什么。”是:

double numbers[] = {40.0, 8.0, 45.0, 55.0, 30.0, 10.0, 20.0};
CGFloat multiplier = 2.67;
double maxValue = -DBL_MAX;
for (int i = 0; i < (sizeof(numbers) / sizeof(double)); i++) {
    numbers[i] *= multiplier; // multiply value
    maxValue = MAX(numbers[i], maxValue); // find max value
}
NSLog(@"Max=%f.2", maxValue);

输出如下:

(double) maxValue = 146.84999999999999
(double [7]) numbers = ([0] = 106.8, [1] = 21.359999999999999, [2] = 120.14999999999999, [3] = 146.84999999999999, [4] = 80.099999999999994, [5] = 26.699999999999999, [6] = 53.399999999999999)

但是,如果您错误地、缺乏知识或其他原因这样做:我强烈建议使用 NSArray ,除非性能是这里的已知问题。

关于ios - 将 double 类型的数组元素相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46004417/

相关文章:

c - 如何使用 C 中的 CSV 文件中的字符串 (char*) 填充二维数组

C++ 包括用于 size_t 的 linux/types.h

ios - Swift - 在 Collection View 中选择项目

ios - 如何使用restkit获取一个简单的json字符串数组

javascript - 禁用 iOS flex 体滚动并保持 native 滚动工作

java - ArrayList add() 的行为方式

结构内的 C 语言 : Way to access a field in a structure,(这个有点棘手)

ios - 键盘消除问题 - Objective C

c - 字符串创建问题 C

c - 多维数组不保存值