Ошибка "аргумент данных не используется строкой формата" для mario, cs50 - PullRequest
0 голосов
/ 09 мая 2020

Я не могу завершить sh свой код Марио (делая шаг) для cs50. Кто-нибудь подскажет, что сюда нужно добавить?

#include <stdio.h>
#include <cs50.h>

int main(void)
{
    int n;
    do
    {
    n = get_int("Height: ");// height determines how may steps are to be made
    }
    while (n < 1 || n > 8); 
    for (int i = 0; i < n; i++)
    {
      for (int j = 0; j < n; j++)
      {
      printf(" ", n - 1 - i);
      printf("#", i + 1);
      printf("\n");
    }

}

ошибка говорит об этом, и я не могу понять, как решить эту проблему.

marioblock.c:16:19: error: data argument not used by format string [-Werror,-Wformat-extra-args]
      printf(" ", n - 1 - i);
             ~~~  ^
marioblock.c:17:19: error: data argument not used by format string [-Werror,-Wformat-extra-args]
      printf("#", i + 1);
             ~~~  ^
marioblock.c:21:2: error: expected '}'
}
 ^
marioblock.c:5:1: note: to match this '{'
{

1 Ответ

2 голосов
/ 09 мая 2020

Функция printf принимает в качестве первого аргумента строку формата. То есть, чтобы включить последующие аргументы в выходную строку, вы должны указать, какие они типы и где вы хотите, чтобы они встречались, например

printf("#%d", 5); // prints "#5"
printf(" %d", 5); // prints " 5"

Вы используете %d для целых чисел , другие данные см. документацию .

...