我正在用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");
}
答案 0 :(得分:3)
将seq的类型更改为int,即
int seq[length];
您正在将int分配给char,因此将其强制转换为8位值。在2s补码中,最高有效位决定正负号,这就是为什么要负数。