我收到了隐式声明错误。请帮忙。我不知道如何用文字解释它,如果你能帮我解决错误,我会非常感激。这是我在学校的任务,我想解决这个问题。请帮忙。
#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));
}
}
}
谢谢
您已正确包含在您显示的示例中声明printf
的标头。
但是还有其他错误:
char string[**size_of_char];
这是不正确的。数组的大小必须是编译时常量。那个表达不是。
int printmenu(int *size_of_char)
宣布printmenu
返回int
,但没有返回声明。程序的行为未定义。
// int **size_of_char printf("Your grade in subject %d is %c.\n", i+1, size_of_char[i]);
您正在尝试使用错误的格式说明符打印int*
。程序的行为未定义。