Witam serdecznie, przerabiam obecnie "Przewodnik dla początkujących" Alex'a Allain i zatrzymałem się właśnie na zadaniu 7 z rozdziału 5!
Polecenie brzmi: Napisz program udostępniający opcję sumowania wyników ankiety, w której mogą wystąpić trzy różne wartości. Dane wejściowe wprowadzane do programu to pytanie ankietowe oraz trzy możliwe odpowiedzi. Pierwszej odpowiedzi przypisana jest wartość 1, drugiej 2, a trzeciej 3. Odpowiedzi są sumowane do chwili, w której użytkownik wprowadzi 0 - wtedy program powinien pokazać wyniki ankiety. Postaraj się wygenerować wykres słupkowy, pokazujący wyniki przeskalowane w taki sposób, aby zmieściły się na ekranie bez względu na liczbę udzielonych odpowiedzi.
Kolorem zielonym oznaczyłem część wykonaną przezemnie, natomiast czerwonym cześć której wykonać nie potrafię. Wklejam kod poniżej!
#include <iostream>
using namespace std;
int main()
{
int answer;
int nr = 1;
int a = 0, b = 0, c = 0;
cout <<"Wezmiesz udzial w nieskonczonej ankiecie, odpowiadaj wpisujac cyfre 1,2 lub 3"<<endl<<"w zaleznosci od wybranej odpowiedzi. "<<endl;
cout <<"Cyfra 0, zakonczysz ankiete i wyswietlisz swoj wynik."<<endl;
while (answer != 0)
{
cout<< endl;
cout << "Pytanie "<<nr<< endl << endl;
nr++;
cin >> answer;
if (answer == 1)
{
a++;
}
else if (answer == 2)
{
b++;
}
else if (answer == 3)
{
c++;
}
else if (answer !=0 && answer !=1 && answer !=2 && answer!=3 )
{
cout<< "Brak poprawnej odpowiedzi, pytanie nie zostanie zaliczone"<< endl;
}
}
cout <<endl<<endl<<endl;
cout<< "Odpowiedziales "<<a<<" razy 1."<<" Otrzymujesz za to "<<a<<" pkt."<<endl;
cout<< "Odpowiedziales "<<b<<" razy 2."<<" Otrzymujesz za to "<<b*2<<" pkt."<<endl;
cout<< "Odpowiedziales "<<c<<" razy 3."<<" Otrzymujesz za to "<<c*3<<" pkt."<<endl;
cout<<endl<<"Razem masz "<<a+b*2+c*3<<" pkt.!"<<endl;
return 0;
}