Po pierwsze to miazga w kodzie, napisałem Ci żebyś nie używał instrukcji goto bo jest do "dupy". Robisz etykiety, które są zbędne! W ogóle programując pod windowsem używasz innego kompilatora ja visual studio? Moim zdaniem to tak jak mieć krowę i kupować mleko .
switch (nWylosowana)
{
case 1:
int r;
char odpowiedz;
Dlaczego instrukcja nie jest zamknięta nie posiada "defaulta"? Czemu wprowadzasz zmienne wewnątrz instrukcji? Przy takich programach stosowanie zmiennych lokalnych jest nie potrzebne, tym bardziej, że gubisz się w instrukcjach. Przeanalizuj kod i dojdziesz czemu tak jest .
Moja rada, jak dużo się uczyć programowania i ćwiczysz to rób Sobie często przerwy . Jak poczujesz, że jesteś zmęczony tym wszystkim to nie idź na upartego a odpocznij. Czasami problemy same się rozwiążą.
Kod dla Visualowców:
// Xmass is coming soon.
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace System;
using namespace std;
int main()
{
int i , g, f;
using std::string;
srand ((int) time(NULL));
int nWylosowana = rand() % 4 + 1;
char a, b, c, d;
string imie;
cout << "Podaj swoje imie" << endl;
cin >> imie;
cout << "Witam cie " << imie << endl << "Przejdzmy do pytan" << endl << endl;
wruc:
cout << imie << " Ulz w kolejnosci miasta pod wzgledem wielkosci od najwiekszego do najmniejszego" << endl;
cout << "a) Krakow" << endl;
cout << " Rzeszow" << endl;
cout << "c) Lublin" << endl;
cout << "d) Warszawa" << endl;
cin >> a;
cin >> b;
cin >> c;
cin >> d;
i = d + a - c + b;
switch(i)
{
case 196:
cout << "Podales poprawne ulozenie" << endl;
break;
default :
cout << "Podales zla kolejnosc sprobuj jeszcze raz";
goto wruc;
}
switch (nWylosowana)
{
case 1:
int r;
char odpowiedz;
cout << imie << " Które z przedstawionych ptaków jest ptakiem domowym?" << endl;
cout << "a)sikorka" << endl << "b)wrona" << endl << "c)papuga" << endl << "d)flaming" << endl;
cin >> odpowiedz;
switch(odpowiedz)
{
case 'c':
char znak;
cout << imie << "Podles poprawna odpowiedz" << endl;
break;
default:
cout << "Niestety to nie jest poprawna odpowiedz" << endl << "Poprawna odpowiedz to c)papuga" << endl;
cout << " Zakonczyc gre? n/t ";
cin >> znak;
if(znak != 't')
{
goto zzz;
}
break;
}
case 2:
char odpowiedz2;
cout << imie << " Ktore panstwo jest najwieksze?" << endl << "a)Polska" << endl << "b)Wegry" << endl << "c)Niemcy" << endl << "d)Rosja" << endl;
cin >> odpowiedz2;
switch(odpowiedz2)
{
case 'd':
char znak;
cout << "Podles poprawna odpowiedz" << endl;
break;
default:
cout << "Niestety to nie jest poprawna odpowiedz" << endl << "Poprawna odpowiedz to d)Rosja" << endl;
cout << " Zakonczyc gre? n/t ";
cin >> znak;
if(znak != 't')
{
goto zzb;
}
break;
}
case 3:
char odpowiedz3;
cout << imie << " Ktora z podanych licz jest liczba szesnastkowa?" << endl;
cout << "a)0x100" << endl << "b)10e3" << endl << "c)100" << endl << "d)0100" << endl;
cin >> odpowiedz3;
switch(odpowiedz3)
{
case 'a':
char znak;
cout << "Podles poprawna odpowiedz" << endl;
break;
default:
cout << "Niestety to nie jest poprawna odpowiedz" << endl << "Poprawna odpowiedz to a)0x100" << endl;
cout << " Zakonczyc gre? n/t " << endl;
cin >> znak;
if(znak != 't')
{
goto zzc;
}
break;
}
case 4:
char odpowiedz4;
cout << imie << "W ktorym roku byla wojna pod grunwaldem?" << endl;
cout << "a)1658" << endl << "b)1410" << endl << "c)1244" << endl << "d) 1310" << endl;
cin >> odpowiedz4;
switch(odpowiedz4)
{
case 'b':
char znak;
cout << "Podles poprawna odpowiedz" << endl;
break;
default:
cout << "Niestety to nie jest poprawna odpowiedz" << endl << "Poprawna odpowiedz to b)1410" << endl;
cout << " Zakonczyc gre? n/t ";
cin >> znak;
while(znak != 't')
{
goto zzd;
}
break;
}
}
zzz:
zzb:
zzc:
zzd:;
}