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

标签 c arrays

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

相关文章:

C 宏 - 未在此范围错误中声明

php - stdClass 与数组。推荐哪个?

php - 如何按嵌套在其中的元素对 PHP 数组进行排序?

javascript - 在 argv[2] NodeJs 之后连接参数

C 宏 - 运算符粘贴?

c - C语言中如何计算字符串的数值

c - C 中重新分配的段错误

c - 用于嵌入式应用程序的基于哈希的记录器

python - 查找与最接近的提供的数字配对匹配的索引

javascript - 使用 find() 时返回 Object 的属性而不是 Object 本身