fdm91hu
14-10-2010, 18:35
Ciao ragazzi, sto seguendo un corso di fondamenti di informatica e quindi mi tocca approfondire le mie già scarse (anzi, scarsissime) conoscenze del c++.
Il prof ci ha dato da fare un programma che in base a delle domande a cui tu rispondi ti assegna dei punti e poi ti dice la percentuale del tuo stato di salute. Ho pensato di usare la funzione "strcmp" per confrontare due stringhe e quindi per assegnare il relativo punteggio, ma purtroppo mi dà errore dicendo che "strcmp was not declared in this scope", un po' come fa quando usi un cout o un cin e ti dimentichi di mettere "using namespace std"... il codice è questo...aiutatemi per favore! :muro:
#include <iostream>
using namespace std;
int main ()
{
int result;
int total = 20;
float percentage;
char qa [2]; //conterrà la risposta della domanda A
char qb [2]; //conterrà la risposta della B
char qc [2]; //conterrà la risposta della C
char qd [2]; //conterrà la risposta della D
char aa = 'a'; //serve per poi confrontare le stringhe nel caso rispondessi A
char ab = 'b'; //serve per poi confrontare le stringhe nel caso rispondessi B
char ac = 'c'; //serve per poi confrontare le stringhe nel caso rispondessi C
char ad = 'd'; //serve per poi confrontare le stringhe nel caso rispondessi D
cout << "Verifica del tuo stato di salute. Rispondi alle seguenti domande:" << endl << "Come ti senti?" << endl << "a) bene" << "b) così così" << "c) non benissimo" << "d) sono malato/a" << endl;
cin.getline (qa,2);
//se rispondi A:
if (strcmp (qa, aa)==0)
{
result = result + 5;
}
//se rispondi B e via dicendo...
else if (strcmp (qa, ab)==0)
{
result = result + 4;
}
else if (strcmp (qa, ac)==0)
{
result = result + 3;
}
else if (strcmp (qa, ad)==0)
{
result = result + 1;
}
cout << "Ora, dimmi. Solitamente dormi in modo:" << endl << "a) regolare" << endl << "b) irregolare" << endl;
cin.getline (qb,2);
if (strcmp (qa, aa)==0)
{
result = result + 5;
}
else if (strcmp (qa, ab)==0)
{
result = result + 2;
}
cout << "In genere mangi cibi grassi molto spesso?" << endl << "a) si" << endl << "b) no" << endl;
cin.getline (qc,2);
if (strcmp (qa, aa)==0)
{
result = result + 2;
}
else if (strcmp (qa, ab)==0)
{
result = result + 5;
}
cout << "Ora un'ultima domanda. Fai sport?" << endl << "a) si" << endl << "b) no" << endl;
cin.getline (qd,2);
if (strcmp (qa, aa)==0)
{
result = result + 5;
}
else if (strcmp (qa, ab)==0)
{
result = result + 2;
}
percentage = 100 / (total/result);
cout << "Il tuo stato di salute corrisponde al " << percentage << "%";
return 0;
}
Grazie mille,
fdm91hu
Il prof ci ha dato da fare un programma che in base a delle domande a cui tu rispondi ti assegna dei punti e poi ti dice la percentuale del tuo stato di salute. Ho pensato di usare la funzione "strcmp" per confrontare due stringhe e quindi per assegnare il relativo punteggio, ma purtroppo mi dà errore dicendo che "strcmp was not declared in this scope", un po' come fa quando usi un cout o un cin e ti dimentichi di mettere "using namespace std"... il codice è questo...aiutatemi per favore! :muro:
#include <iostream>
using namespace std;
int main ()
{
int result;
int total = 20;
float percentage;
char qa [2]; //conterrà la risposta della domanda A
char qb [2]; //conterrà la risposta della B
char qc [2]; //conterrà la risposta della C
char qd [2]; //conterrà la risposta della D
char aa = 'a'; //serve per poi confrontare le stringhe nel caso rispondessi A
char ab = 'b'; //serve per poi confrontare le stringhe nel caso rispondessi B
char ac = 'c'; //serve per poi confrontare le stringhe nel caso rispondessi C
char ad = 'd'; //serve per poi confrontare le stringhe nel caso rispondessi D
cout << "Verifica del tuo stato di salute. Rispondi alle seguenti domande:" << endl << "Come ti senti?" << endl << "a) bene" << "b) così così" << "c) non benissimo" << "d) sono malato/a" << endl;
cin.getline (qa,2);
//se rispondi A:
if (strcmp (qa, aa)==0)
{
result = result + 5;
}
//se rispondi B e via dicendo...
else if (strcmp (qa, ab)==0)
{
result = result + 4;
}
else if (strcmp (qa, ac)==0)
{
result = result + 3;
}
else if (strcmp (qa, ad)==0)
{
result = result + 1;
}
cout << "Ora, dimmi. Solitamente dormi in modo:" << endl << "a) regolare" << endl << "b) irregolare" << endl;
cin.getline (qb,2);
if (strcmp (qa, aa)==0)
{
result = result + 5;
}
else if (strcmp (qa, ab)==0)
{
result = result + 2;
}
cout << "In genere mangi cibi grassi molto spesso?" << endl << "a) si" << endl << "b) no" << endl;
cin.getline (qc,2);
if (strcmp (qa, aa)==0)
{
result = result + 2;
}
else if (strcmp (qa, ab)==0)
{
result = result + 5;
}
cout << "Ora un'ultima domanda. Fai sport?" << endl << "a) si" << endl << "b) no" << endl;
cin.getline (qd,2);
if (strcmp (qa, aa)==0)
{
result = result + 5;
}
else if (strcmp (qa, ab)==0)
{
result = result + 2;
}
percentage = 100 / (total/result);
cout << "Il tuo stato di salute corrisponde al " << percentage << "%";
return 0;
}
Grazie mille,
fdm91hu