#include "pokemon.h" struct pokemon_type { struct pokemon_type* next; char type[MAXLEN]; int n; }; struct pokemon_type* pokemon_types = NULL; void add(const char* type, int n) { if(strlen(type) > 0) { struct pokemon_type* cur; for(cur=pokemon_types; cur && strcmp(cur->type, type); cur=cur->next) { } if(!cur) { cur = malloc(sizeof(*cur)); strncpy(cur->type, type, 16); cur->n = 0; cur->next = pokemon_types; pokemon_types = cur; } cur->n += n; } } void print(FILE* f) { for(struct pokemon_type* cur=pokemon_types; cur; cur=cur->next) fprintf(f, "%s %d\n", cur->type, cur->n); } void cleanup() { while(pokemon_types) { struct pokemon_type* next = pokemon_types->next; free(pokemon_types); pokemon_types = next; } } int main(int argc, char** argv) { add("Terre", 1); add("Feu", 3); add("Féérique", 4); add("Eau", 5); add("Féérique", 3); print(stdout); cleanup(); return 0; }