我想创建一个数字数组,从 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/