Я пытаюсь написать программу для целей тестирования, которая генерирует последовательность псевдослучайных символов ASCII для печати, где вы помещаете в командной строке сколько символов вы хотите. сейчас он работает не так хорошо; последовательность почти всегда является большинством? s, и она не всегда печатает количество символов, которые я скажу для печати. вот мой код; что с этим не так? Я использую время как семя для случайной функции.генерирование случайных печатных символов ascii в c
примечание: мне не стоит использовать какой-либо алгоритм более сложный, чем один, используя srand() и rand().
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]) {
int c;
int i;
int limit;
sscanf(argv[1], "%d", &limit);
srand((unsigned int)time(NULL));
for (i = 0; i < limit; i++) {
c = rand();
if (c != 9 && c != 10 && c <= 32 && c >= 127) {
i--;
}
else {
putchar(c);
}
}
return 0;
}
спасибо!
хотя этот ответ в C#, она должна быть относительно легко конвертировать в C: http://stackoverflow.com/questions/4221001/algorithm-for-generating-a-random-numeric-string-10-000-chars-in-length/42210 15 # 4221015 –
Почему вы решили, что 9 и 10 подпадают под «печать»? –
Возможно, он имел в виду '' \ n'' – ruslik