Печать сетки на С - PullRequest
       2

Печать сетки на С

0 голосов
/ 02 сентября 2018

Я пытаюсь напечатать сетку на C, чтобы потом поместить объект на нее. Вот как должен выглядеть вывод:

- - -
- - -
- - -

Но я продолжаю получать сообщение об ошибке excess elements in char array initializer, я не знаю почему, любой совет?

#include <stdio.h>
#define X 3
#define Y 3

// Print the array
void printArray(char row[][Y], size_t one, size_t two)
{
   // output column heads
   printf("%s", "       [0]  [1]  [2]");
   // output the row in tabular format
   for (size_t i = 0; i < one; ++i) {
      // output label for row
      printf("\nrow[%lu] ", i);
      // output grades for one student
      for (size_t j = 0; j < two; ++j) {
         printf("%-5d", row[i][j]);
      } 
   } 
} 

int main(void)
{
   // initialize student grades for three students (rows)
   char row[X][Y] =  
      { { "-", "-", "-"},
        { "-", "-", "-"},
        { "-", "-", "-"} };
   // output the row
   puts("The array is:");
   printArray(row, X, Y);

}

1 Ответ

0 голосов
/ 02 сентября 2018
  1. Сначала вы должны изменить "-" на '-'. Поскольку "-" является строкой и содержит '\0' неявно. Таким образом, длина "-" равна 9, потому что длина байта равна 8.
  2. Вы должны изменить печать: printf("%-5d", row[i][j]); к: printf("%-5c", row[i][j]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...