Hallo,
ich versuche mich gerade mit Codesignals. Dort sind aufgaben gestellt,
welche man mit einem Code lösen muss. Das ganze mache ich in C.
Bei meiner Aufgabe handelt es sich um eine art UNO spiel. Gegeben ist
die Anzahl der Spieler und die reihenfolge der Gespielten Karte. In den
Regeln steht dann wie viele punkte eine Karte gibt. Die Ausgabe soll
dann ein Array sein, mit der Länge der Anzahl der Spieler und Inhalt mit
den entsprechenden Punkten. Das ganze zu berechnen und auszuwerten ist
nicht mein Problem. Mein Problem liegt bei den Datentypen.
Anfangs das der Code wie folgt aus:
1 | // Definition for arrays:
|
2 | // typedef struct arr_##name {
|
3 | // int size;
|
4 | // type *arr;
|
5 | // } arr_##name;
|
6 | //
|
7 | // arr_##name alloc_arr_##name(int len) {
|
8 | // arr_##name a = {len, len > 0 ? malloc(sizeof(type) * len) : NULL};
|
9 | // return a;
|
10 | // }
|
11 | //
|
12 | //
|
13 | arr_integer guno(int playercount, arr_string moves) {
|
14 | }
|
Anzahl der Player ist klar und die Anzahl der moves und die Karten sind
auch klar. Allerdings bekomme ich den output nicht richtig hin.
In der Beschreibug steht:
[output] array.integer
An array of integers containing the score of each player. For example,
in a game with 3 players, the first player's score would be at index 0
and the last player's score would be at index 2.
[C] Syntax Tips
// Prints help message to the console
// Returns a string
char * helloWorld(char * name) {
char * answer = malloc(strlen(name) + 8);
printf("This prints to the console when you Run Tests");
strcpy(answer, "Hello, ");
strcat(answer, name);
return answer;
}
Wenn ich jetzt aber ein array initialisiere
1 | int output[playercount];
|
und am ende des Codes
bekomme ich die Fehlermeldung
main.c on line 54:12: error: incompatible types when returning type ‘int
*’ but ‘arr_integer’ {aka ‘struct arr_integer’} was expected
return output;
das heißt, dass mein Ausgabetyp doch nicht richtig ist? Wie muss dieser
denn sein?