gpt4 book ai didi

c - 有没有一种简洁的方法(没有循环)在 C 中创建线性间隔的数组?

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:13 25 4
gpt4 key购买 nike

我想创建一个数字数组,从 80 到 86,以 0.5 为增量分隔。我知道我可以通过编写来创建一个数组来表示它

float Vector1[] = {80, 80.5, 81, 81.5, 82, 82.5, 83, 83.5, 84, 84.5, 85, 85.5, 86};

在我平时使用的Matlab中,这很简单

Vector1 = 80:0.5:86;

在这种特殊情况下,手动写入数组没什么大不了的,但是对于更大的数组,写出每个条目是不可行的。 C 中是否有类似的功能来创建任意边界和步长的线性间隔的一维数组?如标题所述,我想知道是否有不涉及使用循环的解决方案。

最佳答案

您可以编写一段单独的代码来生成静态声明:

makevector.c:

#include <stdio.h>

int main()
{
float i;
int first = 1;
printf("float Vector1[] = { ");
for (i = 80; i <= 86; i += 0.5) {
if (first) {
first = 0;
} else {
printf(", ");
}
printf("%.1f", i);
}
printf(" };\n");
return 0;
}

然后运行它:

gcc -o makevector makevector.c
./makevector > vector.c

虽然从技术上讲您仍然有一个循环,但它是在创建代码之前完成的,因此您不需要在实际代码中使用循环。

关于c - 有没有一种简洁的方法(没有循环)在 C 中创建线性间隔的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485337/

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