#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, n;
printf("\n%s\n%s",
"Some randomly distributed integers will be printed.",
"How many do yo want to see? ";
scanf("%d", &n);
for (i = 0; i < n; ++i) {
if (i % 10 == 0)
putchar('\n');
printf("%7d", rand());
}
printf("\n\n");
return 0;
}
это код из учебника "Книга по C".
при вводе 23 при появлении запроса предполагается генерировать 23 случайных числа в 3 строках, 8 столбцах (3 * 8-1).
я узнал, что printf("%7d", rand())
должен возвращать значение, напечатанное в формате десятичного целого числа, а ширина поля, в котором печатается целое число, равна 7.
однако, я получаю случайные числа шириной более 7, и это не выглядит аккуратно. (без столбцов и строк, просто огромный массив последовательных чисел, таких как 1235289043528935294835698246182965982)
Я думал, что это как-то связано с функцией выражения printf("%7d", rand())
и с тем, как она должна возвращать значения.
Я начинаю думать, что учебник неправильный.