For a coding assignment I’m trying to make a ‘personality test’ to determine what the users favorite genre is and what his favorite artist is (including the songs of the artist). The problem I am having right now is that for some reason I keep getting the same error: warning: initialization makes integer from pointer with a cast [-Wint-conversion}. I have absolutely no clue how to fix this and I have tried about a thousand things so if there is anybody who can help me it would be very much appreciated.
The exact error that I get is for every genre and that is the (genre)_artiesten and (genre)_nummers. The picture included shows the error for the genre pop (but its the same for every genre).
Here’s the following codes (module.c):
#include <stdio.h>
#include <string.h>
#include "module.h"
#define MAX_NAAM_LENGTE 50
#define MAX_ANTWOORD_LENGTE 2
PersoonlijkheidstestVraag persoonlijkheidstest_vragen[] = {
{"1. Wat doe je het liefst op een vrije dag?", "A. Chillen op de bank.", "B. Sporten.", "C. Hele dag met vrienden zijn.", "D. Urenlang tekenen en creatief zijn."},
{"2. Wat is jouw favoriete seizoen?", "A. Herfst.","B. Lente.", "C. Zomer.", "D. Winter"},
{"3. Wat is jouw favoriete film van deze lijst?", "A. Love don't cost a thing." ,"B. Project X.","C. Pitch perfect" ,"D. Diary of a wimpy kid."},
{"4. Wie is jouw favoriete vrouwelijke celebrity?", "A. Zendaya.","B. Jennifer Lawrence.","C. Emma Stone.", "D. Angelina Jolie."},
{"5. Wie is jouw favoriete mannelijke celebrity?", "A. Michael B. Jordan.", "B. Jacob Elordi.", "C. Ryan Gosling.", "D. Robert Pattinson."},
{"6. Tot welke groep behoor jij?", "A. Stoners." ,"B. Jocks." ,"C. Populars." ,"D. Emo / goths."},
{"7. Welk woord beschrijft jou het beste?", "A. Rustig.", "B. Extrovert.", "C. Sociaal.", "D. Introvert."},
{"8. Waar zou je het liefst willen wonen?", "A. Aan het water.", "B. In een grote stad.", "C. In het buitenland.", "D. In een klein dorp."},
{"9. Wat is jouw favoriete kleur?", "A. Blauw.", "B. Oranje.", "C. Roze.", "D. Zwart."},
{"10. Wat doe je tijdens het uitgaan?", "A. Ergens zitten om met mensen te praten.", "B. Dansen, Dansen en nog meer Dansen.", "C. Socializen.", "D. Ik ga niet uit."}
};
PersoonlijkheidstestVraag persoonlijkheidstest_vragen_30plus[] = {
{"1. Wat doe je het liefst op een vrije dag?", "A. Lekker wandelen in de natuur.", "B. Thuis een goed boek lezen.", "C. Koken en nieuwe recepten uitproberen.", "D. Naar een museum of kunstgalerij gaan."},
{"2. Wat is jouw favoriete seizoen?", "A. Lente.", "B. Zomer.", "C. Herfst.", "D. Winter."},
{"3. Wat is jouw favoriete film van deze lijst?", "A. The Shawshank Redemption.", "B. Forrest Gump.", "C. The Godfather.", "D. Schindler's List."},
{"4. Wie is jouw favoriete vrouwelijke celebrity?", "A. Meryl Streep.", "B. Helen Mirren.", "C. Judi Dench.", "D. Angela Lansbury."},
{"5. Wie is jouw favoriete mannelijke celebrity?", "A. Morgan Freeman.", "B. Tom Hanks.", "C. Anthony Hopkins.", "D. Ian McKellen."},
{"6. Tot welke groep behoor jij?", "A. Natuurliefhebbers.", "B. Boekenwurmen.", "C. Fijnproevers.", "D. Cultuurliefhebbers."},
{"7. Welk woord beschrijft jou het beste?", "A. Bedachtzaam.", "B. Filosofisch.", "C. Gepassioneerd.", "D. Reflectief."},
{"8. Waar zou je het liefst willen wonen?", "A. Op het platteland.", "B. In een historische stad.", "C. In een kunstzinnige wijk.", "D. Dicht bij familie en vrienden."},
{"9. Wat is jouw favoriete kleur?", "A. Groen.", "B. Bruin.", "C. Geel.", "D. Grijs."},
{"10. Wat doe je tijdens het uitgaan?", "A. Naar een rustig café gaan.", "B. Een balletvoorstelling bijwonen.", "C. Genieten van een goed diner", "D. Samen met vrienden een goede fles wijn delen."}
};
Vraag pop_vragen[] = {
{"Hou je van vrolijke muziek?", "Ja, altijd!", "Soms.", "Nee, niet echt."},
{"Geef je meer om de tekst of de melodie van een liedje?", "Tekst.", "Melodie.", "Beide."},
{"Luister je graag naar muziek van zangeressen?", "Ja, absoluut!", "Af en toe.", "Liever niet."},
{"Ben je bekend met nummers zoals 'Shake it off' van Taylor Swift, 'Shape of you' van Ed Sheeran of 'Sofia' van Clairo? Zo ja, welk nummer spreekt je het meest aan?", "Shake it off.", "Shape of you.", "Sofia."}
};
Vraag rnb_vragen[] = {
{"Luister je liever naar moderne muziek of oudere muziek?", "Moderne muziek.", "Moderne muziek, maar ook oudere muziek.", "Oudere muziek."},
{"Heb je liever upbeat muziek of houd je meer van langzamere muziek?", "Mix van beide.", "Upbeat.", "Langzame."},
{"Houd je van rap-achtige muziek?", "Ja.", "Niet echt.", "Absoluut niet."},
{"Ben je bekend met nummers zoals 'Broken Clocks' van SZA, 'Yeah!' van Usher, of 'Got to give it up' van Marvin Gaye? Zo ja, welk nummer spreekt je het meest aan?", "Broken Clocks.", "Yeah!", "Got to give it up."}
};
Vraag edm_vragen[] = {
{"Houd je van dansen op feestjes?", "Ja, altijd!", "Niet echt, maar soms wel.", "Nee, helemaal niet."},
{"Wat vind je belangrijk in een liedje?", "De beat moet lekker zijn.", "De tekst moet betekenisvol zijn.", "De melodie moet catchy zijn."},
{"Wat is jouw favoriete EDM-subgenre?", "House.", "Dubstep.", "Trance."},
{"Ben je bekend met nummers zoals 'Hey mama' van David Guetta, 'One more time' van Daft Punk of 'Marea (we've lost dancing) van Fred Again? Zo ja, welk nummer spreekt jou het meest aan?", "Hey mama.", "One more time.", "Marea (we've lost dancing)."}
};
Vraag rock_vragen[] = {
{"Houd je van gitaren in muziek?", "Ja, dat is geweldig!", "Soms.", "Niet echt."},
{"Wat vind je belangrijk in een rocknummer?", "De energie.", "De tekst.", "De instrumentatie."},
{"Welk subgenre van rock spreekt je het meest aan?", "Classic rock.", "Alternative rock.", "Hard rock."},
{"Ben je bekend met nummers zoals 'Highway to Hell' van AC/DC, 'Bohemian Rhapsody' van Queen of 'Dreams' van Fleetwood Mac? Zo ja, welk nummer spreekt je het meest aan?", "Highway to Hell.", "Bohemian Rhapsody.", "Dreams."}
};
ArtiestMetNummers pop_artiesten[] = {
{"Taylor Swift", {{"Shake It Off"}, {"Love Story"}, {"Blank Space"}}},
{"Ed Sheeran", {{"Shape of You"}, {"Thinking Out Loud"}, {"Castle on the Hill"}}},
{"Clairo", {{"Sofia"}, {"Pretty Girl"}, {"Bags"}}}
};
ArtiestMetNummers rnb_artiesten[] = {
{"SZA", {"Broken Clocks", "The Weekend", "Good Days"}},
{"Usher", {"Yeah!", "U Remind Me", "Burn"}},
{"Marvin Gaye", {"Got to Give It Up", "Sexual Healing", "What's Going On"}}
};
ArtiestMetNummers edm_artiesten[] = {
{"David Guetta", {"Hey Mama", "Titanium", "Without You"}},
{"Daft Punk", {"One More Time", "Get Lucky", "Harder, Better, Faster, Stronger"}},
{"Fred Again", {"Marea (We've Lost Dancing)", "Kyoto", "Julia (Deep Diving)"}}
};
ArtiestMetNummers rock_artiesten[] = {
{"AC/DC", {"Highway to Hell", "Back in Black", "Thunderstruck"}},
{"Queen", {"Bohemian Rhapsody", "We Will Rock You", "Another One Bites the Dust"}},
{"Fleetwood Mac", {"Dreams", "Go Your Own Way", "The Chain"}}
};
GenreInfo genres[] = {
{"Pop", pop_artiesten, pop_vragen, (int)(sizeof(pop_vragen) / sizeof(pop_vragen[0]))},
{"R&B", rnb_artiesten, rnb_vragen, (int)sizeof(rnb_vragen) / sizeof(rnb_vragen[0])},
{"EDM", edm_artiesten, edm_vragen, (int)(sizeof(edm_vragen) / sizeof(edm_vragen[0]))},
{"Rock", rock_artiesten, rock_vragen, (int)(sizeof(rock_vragen) / sizeof(rock_vragen[0]))}
};
char* kiesMuziekGenre() {
char genreKeuze;
do {
printf("Naar welk genre muziek luister je het meest?n");
printf("Kies A voor Pop, B voor R&B, C voor Rock, D voor EDM: ");
scanf(" %c", &genreKeuze);
switch (genreKeuze) {
case 'A':
case 'a':
return "Pop";
case 'B':
case 'b':
return "R&B";
case 'C':
case 'c':
return "Rock";
case 'D':
case 'd':
return "EDM";
default:
printf("Ongeldige keuze voor genre. Kies A voor Pop, B voor R&B, C voor EDM en D voor Rock.n");
}
} while (1);
}
// Functie om de antwoorden van de gebruiker weer te geven
void toonAntwoorden(char *naam, int leeftijd, char *muziekGenre) {
printf("----------------------------------------n");
printf("| Jouw Profiel |n");
printf("----------------------------------------n");
printf("| Naam: %sn", naam);
printf("| Leeftijd: %dn", leeftijd);
printf("| Meest beluisterde muziekgenre: %sn", muziekGenre);
printf("----------------------------------------n");
}
// Functie om de persoonlijkheidstest vragen te stellen
void persoonlijkheidstest(PersoonlijkheidstestVraag *vragen, int aantalVragen) {
char antwoorden[aantalVragen][MAX_ANTWOORD_LENGTE];
aantalVragen = sizeof(persoonlijkheidstest_vragen) / sizeof(persoonlijkheidstest_vragen[0]);
aantalVragen_30plus = sizeof(persoonlijkheidstest_vragen_30plus) / sizeof(persoonlijkheidstest_vragen_30plus[0]);
// Stel de vragen en sla de antwoorden op
for (int i = 0; i < aantalVragen; ++i) {
do {
printf("%s", vragen[i].vraag);
printf("Antwoord: ");
scanf("%s", antwoorden[i]);
if (!(antwoorden[i][0] == 'a' || antwoorden[i][0] == 'A' || antwoorden[i][0] == 'b' || antwoorden[i][0] == 'B' ||
antwoorden[i][0] == 'c' || antwoorden[i][0] == 'C' || antwoorden[i][0] == 'd' || antwoorden[i][0] == 'D')) {
printf("Ongeldige keuze. Kies a, b, c of d.n");
}
} while (!(antwoorden[i][0] == 'a' || antwoorden[i][0] == 'A' || antwoorden[i][0] == 'b' || antwoorden[i][0] == 'B' ||
antwoorden[i][0] == 'c' || antwoorden[i][0] == 'C' || antwoorden[i][0] == 'd' || antwoorden[i][0] == 'D'));
}
// Toon de antwoorden van de gebruiker
printf("nAntwoorden gebruiker:n");
for (int i = 0; i < aantalVragen; ++i) {
printf("%d. %sn", i + 1, antwoorden[i]);
}
// Initialiseer counters voor elk antwoordtype
int aantalAntwoordenA = 0;
int aantalAntwoordenB = 0;
int aantalAntwoordenC = 0;
int aantalAntwoordenD = 0;
// Tel het aantal antwoorden van elk type
for (int i = 0; i < aantalVragen; ++i) {
if (antwoorden[i][0] == 'a' || antwoorden[i][0] == 'A') {
aantalAntwoordenA++;
} else if (antwoorden[i][0] == 'b' || antwoorden[i][0] == 'B') {
aantalAntwoordenB++;
} else if (antwoorden[i][0] == 'c' || antwoorden[i][0] == 'C') {
aantalAntwoordenC++;
} else if (antwoorden[i][0] == 'd' || antwoorden[i][0] == 'D') {
aantalAntwoordenD++;
}
}
// Bepaal het favoriete genre op basis van de meerderheid van de antwoorden
char *favorieteGenre;
if (aantalAntwoordenA >= aantalAntwoordenB && aantalAntwoordenA >= aantalAntwoordenC && aantalAntwoordenA >= aantalAntwoordenD) {
favorieteGenre = "R&B";
} else if (aantalAntwoordenB >= aantalAntwoordenA && aantalAntwoordenB >= aantalAntwoordenC && aantalAntwoordenB >= aantalAntwoordenD) {
favorieteGenre = "Pop";
} else if (aantalAntwoordenC >= aantalAntwoordenA && aantalAntwoordenC >= aantalAntwoordenB && aantalAntwoordenC >= aantalAntwoordenD) {
favorieteGenre = "EDM";
} else {
favorieteGenre = "Rock";
}
printf("nJouw favoriete muziekgenre is: %s!n", favorieteGenre);
printf("Om erachter te komen wie jouw nieuwe favoriete artiest is stellen we je nog wat vragen...n");
}
My structs are:
#ifndef MODULE_H
#define MODULE_H
#define MAX_ARTIESTEN 3
#define MAX_NUMMERS 3
#define MAX_VRAGEN 4
#define MAX_NAAM_LENGTE 50
#define MAX_NUMMER_LENGTE 50
//Struct voor vragen
typedef struct {
char vraag[MAX_NAAM_LENGTE];
char antwoordA[MAX_NAAM_LENGTE];
char antwoordB[MAX_NAAM_LENGTE];
char antwoordC[MAX_NAAM_LENGTE];
char antwoordD[MAX_NAAM_LENGTE];
} PersoonlijkheidstestVraag;
extern PersoonlijkheidstestVraag persoonlijkheidstest_vragen[];
extern int aantalVragen;
extern PersoonlijkheidstestVraag persoonlijkheidstest_vragen_30plus[];
extern int aantalVragen_30plus;
typedef struct {
char vraag[200]; // Hier kun je de maximale lengte van een vraag aanpassen
char antwoordA[50];
char antwoordB[50];
char antwoordC[50];
} Vraag;
extern PersoonlijkheidstestVraag persoonlijkheidstest_vragen[];
extern PersoonlijkheidstestVraag persoonlijkheidstest_vragen_30plus[];
// Struct voor artiest met nummers
typedef struct {
char naam[MAX_NAAM_LENGTE];
char nummers[MAX_NUMMERS][MAX_NUMMER_LENGTE];
} ArtiestMetNummers;
// Struct voor genre informatie
typedef struct {
char genreNaam[MAX_NAAM_LENGTE];
ArtiestMetNummers artiesten[MAX_ARTIESTEN];
PersoonlijkheidstestVraag vragen[MAX_VRAGEN];
Vraag vraag[3];
int aantalVragen;
} GenreInfo;
void toonAntwoorden(char *naam, int leeftijd, char *muziekGenre);
void persoonlijkheidstest(PersoonlijkheidstestVraag *vragen, int aantalVragen);
// Array van genre informatie
extern GenreInfo genres[];
#endif
and my main.c:
#include "module.h"
#include <stdio.h>
#include <string.h>
#define MAX_NAAM_LENGTE 50
int main() {
char naam[MAX_NAAM_LENGTE];
int leeftijd;
char muziekGenre[10]; // Array voor muziekgenre
// Welkomstbericht
printf("Welkom! Beantwoord de volgende vragen:n");
// Vraag naar naam
printf("Wat is je naam? ");
scanf("%s", naam);
// Vraag naar leeftijd met inputvalidatie
do {
printf("Wat is je leeftijd? ");
if (scanf("%d", &leeftijd) != 1 || leeftijd <= 0) {
printf("Ongeldige invoer. Voer een geldige leeftijd in.n");
// Leeg de invoerstroom om te voorkomen dat het programma vastloopt
while (getchar() != 'n');
} else {
break; // Als de leeftijd geldig is, stop met de lus
}
} while (1);
// Bepaal welke set vragen te gebruiken op basis van leeftijd
PersoonlijkheidstestVraag *vragen;
int aantalVragen;
if (leeftijd <= 30) {
vragen = persoonlijkheidstest_vragen;
} else {
vragen = persoonlijkheidstest_vragen_30plus;
}
// Vraag naar muziekgenre
printf("Naar welk genre muziek luister je het meest?n");
printf("Kies A voor Pop, B voor R&B, C voor Rock, D voor EDM: ");
scanf("%s", muziekGenre);
// Toon de antwoorden van de gebruiker op de basisvragen
toonAntwoorden(naam, leeftijd, muziekGenre);
// Vraag of de gebruiker door wil gaan met de persoonlijkheidstest
char antwoord[5];
printf("Wil je nu verder gaan met de persoonlijkheidstest? (ja/nee): ");
scanf("%s", antwoord);
// Als de gebruiker 'ja' antwoordt, start de persoonlijkheidstest
if (strcmp(antwoord, "ja") == 0 || strcmp(antwoord, "Ja") == 0) {
printf("Beantwoord de volgende vragen:n");
persoonlijkheidstest(vragen, aantalVragen);
} else {
printf("Bedankt voor het beantwoorden van de vragen.n");
}
return 0;
}
I’ve tried to make it an (int) but even that doesn’t work.
TryingToBeACoder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
12