Неявное объявление printf - PullRequest
0 голосов
/ 06 марта 2019

Я получаю неявную ошибку объявления.Пожалуйста помоги.Я не знаю, как объяснить это словами, я был бы очень признателен, если бы вы могли помочь мне с ошибкой.Это мое задание в школе, и я хочу решить проблему.Пожалуйста, помогите.

#include<stdio.h>
int printmenu(int *size_of_char);
int get_char(int **size_of_char);

int main() { 

int choice = 0, size_of_char;

while (choice == 0) {
  printf("Enter the size of the array: "); 
  scanf("%d", &size_of_char);
  if (size_of_char <= 0) {
    printf("Invalid input\n");
  }
  else {choice = printmenu(&size_of_char);
  }
}
return 0;

}

int printmenu(int *size_of_char) {
int x;
printf("Menu\n\n");
printf("0. Input characters\n");
printf("1. Shift Elements to Right\n");
printf("2. Combinations of 2 digits\n");
printf("3. Exit\n");
printf("Enter choice: "); 
scanf("%d", &x);

if (x == 0) { 
      get_char(&size_of_char);
    }
  }

int get_char(int **size_of_char) {
    char string[**size_of_char];
      for(int i = 0; i < **size_of_char; i++){
      printf("Enter value: %c ", i+1);
      scanf("%c", &string[i]);
      for(int i = 0; i < **size_of_char; i++){
printf("Your grade in subject %d is %c.\n", i+1, size_of_char[i]);
//printf("Your grade in subject %d is %f.\n", i+1, *(grades + i));


}
}
}

Спасибо

1 Ответ

2 голосов
/ 06 марта 2019

Вы правильно включили заголовок, который объявляет printf в показанном вами примере.


Однако есть и другие ошибки:

char string[**size_of_char];

Это плохо сформировано.Размер массива должен быть постоянной времени компиляции.Это выражение не является.

int printmenu(int *size_of_char)

printmenu объявлено как возвращающее int, но оператор return отсутствует.Поведение программы не определено.

// int **size_of_char
printf("Your grade in subject %d is %c.\n", i+1, size_of_char[i]);

Вы пытаетесь напечатать int* с неверным спецификатором формата.Поведение программы не определено.

...