随机数生成器为更大的长度添加“-”

时间:2019-12-03 16:11:47

标签: c random

我正在用C编写一个函数,该函数会在给定序列长度的情况下生成随机整数序列。我注意到,数字> 66时,标准输出在数字组之间显示“-”。我如何删除它并简单地获取一长串整数? 这是我的代码段和标准输出:

void gen_seq(int upper, int lower, int length) {
    srand((unsigned) time(NULL));
    char seq[length];
    int i, n;
    for (i = 0; i < length; i++) {
        n = (rand() % (upper - lower + 1)) + lower; // range of numbers to generate numbers from
        if (n != "-")
            seq[i] = n;
    }
    for (i = 0; i < length; i++)
        printf("%d", seq[i]);
    printf("\n");
}

enter image description here

1 个答案:

答案 0 :(得分:3)

将seq的类型更改为int,即

int seq[length];

您正在将int分配给char,因此将其强制转换为8位值。在2s补码中,最高有效位决定正负号,这就是为什么要负数。