Итак, я пытался выполнить задачу, заданную на курсе Harvard CS50. Я смог создать программу, но хотел сделать ее чище с точки зрения дизайна. Я решил использовать функцию.
Цель состояла в том, чтобы создать программу, которая принимает значение высоты от 1 до 8. Если высота была 1, то результат будет # #
. Если высота увеличивается, то на выходе будет еще 2 игрока с 1 дополнительным #
слева и справа.
Когда я попытался вернуть значение и создать функцию с типом возврата string
Я продолжал получать ошибки.
Код:
#include <stdio.h>
#include <cs50.h>
char *mario();
int main(void){
printf("%c", mario());
}
char *mario(){
int stop = 0;
while(stop == 0){
unsigned int height = get_int("Height: ");
char *result = " ";
if(height == 1){
printf("\n# #\n");
stop = 1;
}else if(height == 2){
result = "\n # #\n## ##\n";
stop = 1;
}else if(height == 3){
result = "\n # #\n ## ##\n### ###\n";
stop = 1;
}else if(height == 4){
result = "\n # #\n ## ##\n ### ###\n#### ####\n";
stop = 1;
}else if(height == 5){
result = "\n # #\n ## ##\n ### ###\n #### ####\n##### #####\n";
stop = 1;
}else if(height == 6){
result = "\n # #\n ## ##\n ### ###\n #### ####\n ##### #####\n###### ######\n";
stop = 1;
}else if(height == 7){
result = "\n # #\n ## ##\n ### ###\n #### ####\n ##### #####\n ###### ######\n####### #######\n";
stop = 1;
}else if(height == 8){
result = "\n # #\n ## ##\n ### ###\n #### ####\n ##### #####\n ###### ######\n ####### #######\n######## ########\n";
stop = 1;
}
}
return result;
}
Ошибка:
mario.c:33:7: error: conflicting types for 'mario'
char *mario(){
^
mario.c:5:5: note: previous declaration is here
int mario(void);
^
mario.c:88:12: error: use of undeclared identifier 'result'
return result;
^
2 errors generated.
<builtin>: recipe for target 'mario' failed
make: *** [mario] Error 1
Как я могу это исправить?
Я использую CS50 библиотека как видно и в IDE.