Возможно, вы еще не сталкивались с форматированным выводом.printf()
принимает строку в качестве первого параметра, а затем переменное число дополнительных параметров.Специальные строки, найденные в первых параметрах, заменяются значениями, указанными в дополнительных параметрах.Например:
int i = 42;
printf("%d", i);
выводит 42.
Или вы можете написать:
char name[] = "The Devil";
int num = 666;
printf("My name is %s and my favourite number is %d.", name, num);
Ну, вы можете представить, что происходит.
Теперьесли вы оглянетесь назад на свою проблему, легко увидеть, что происходит.Вы фактически пишете:
printf("%d%s%u");
, но так как вы не предоставляете никаких значений для 3 заполнителей, результатом является мусор - технически известный как неопределенное поведение .