gpt4 book ai didi

c - 如何在 C 中将 double 组转换为整数数组?

转载 作者:行者123 更新时间:2023-12-02 06:49:05 26 4
gpt4 key购买 nike

我有一个由 double 组成的数组,我需要将其向下舍入并转换为整数,以便我可以将它们用作输出数组中的索引。我刚刚开始 C 编程,但不确定它是如何工作的。到目前为止,我能想到的最好的是:

int create_hist( double input_array[], int count, int output_array[17] ) {
for ( int i = 0; i < count; i++ ) {
input_array[i] = int floor(input_array[i]);
output_array[input_array[i]]++;

但是我遇到以下错误,我无法破译:

array.c:11:20: error: expected expression before ‘int’
input_array[i] = int floor(input_array[i]);
^
array.c:12:7: error: array subscript is not an integer
hist[input_array[i]]++;
^
array.c:14:1: error: control reaches end of non-void function [-Werror=return-type]
}
^

如果有人能告诉我我哪里做错了,将不胜感激。

最佳答案

除非您真的想修改 input_array,否则最好将四舍五入的 double 值保存在一个中间变量中,然后访问您的整数数组。无需使用 floor()double 转换为 int 即可。

int create_hist(double input_array[], int count, int output_array[17]) {


for (int i = 0; i < count; i++) {
int index = (int)input_array[i];

if ((index > 16) || (index < 0)) {
return -1;
}

output_array[index]++;
}

return 0;
}

当然,您也应该真正将 output_array 的大小作为变量传递,而不是对其进行硬编码。

关于c - 如何在 C 中将 double 组转换为整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49594596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com