Witam, mam mały problem z instrukcją switch. Domyślam się że to banał i robię głupi błąd ale nawet po napisaniu tego na nowo wciąż to samo. Tutaj program:
#include "stdafx.h"
#include "iostream"
#include "string"
#include "conio.h"
using namespace std;
int main()
{
string haslo;
cout << "ABY WEJSC WPISZ HASLO:" << endl;
getline(cin, haslo);
if (haslo == "1")
{
system("cls");
}
else
{
cout << "Zle haslo";
_getch();
return 0;
}
int x;
cout << "WW WWW WW III TTTTTTTTTTTTTT AAA MMM MMM YY YY !!!" << endl;
cout << "WW WWW WW III TTTT AA AA MM MM MM MM YY YY !!!" << endl;
cout << " WW WW WW WW III TTTT AA AA MM MM MM MM YY YY !!!" << endl;
cout << " WW WW WW WW III TTTT AA AA MM MMM MM YYY !!!" << endl;
cout << " WW WW WW WW III TTTT AAAAAAAAAAA MM M MM YYY" << endl;
cout << " WW WW WW WW III TTTT AA AA MM MM YYY !!!" << endl;
cout << " WWWW WWWW III TTTT AA AA MM MM YYY !!!" << endl << endl << endl;
cout << "Wybierz program jaki chcesz uruchomic:" << endl;
cout << "1. Program generujacy gwiazdki w linii" << endl;
cout << "2. Program generujacy choinke" << endl;
cout << "3. Program generujacy trojkat:" << endl;
switch (x)
{
case 1:
{
int liczbagwiazdek;
cout << "Podaj z ilu gwiazdek ma skladac sie linia" << endl;
cin >> liczbagwiazdek;
for (int i = 1; i <= liczbagwiazdek; i++)
cout << "*";
break;
}
case 2:
{
int h;
cout << "jak wysoka ma byc choinka?" << endl;
cin >> h;
for (int i = 1; i <= h - 1; i++) // petla od wierszy
{
for (int k = 1; k <= h - i - 1; k++) //petla od spacji
cout << " ";
for (int j = 1; j <= 2 * i - 1; j++) //petla od gwiazdek
cout << "*";
cout << endl;
}
for (int pien = 1; pien <= h - 2; pien++)
{
cout << " ";
}
cout << "#";
break;
}
case 3:
{
int ile, i, j, k;;
cout << "Podaj ilosc linii:" << endl;
cin >> ile;
for (i = 1; i <= ile; ++i) // petla drukująca wiersze
{
for (j = i; j < ile; ++j) // petla drukująca spacje
cout << " ";
for (k = 1; k <= (2 * i - 1); ++k) // petla rysująca gwiazdki
if (k == 1 || k == (2 * i - 1) || i == ile)
cout << "*";
else
cout << " ";
cout << "\n";
}
break;
}
default:
cout << "Błąd";
}
_getch();
return 0;
}
Problem leży mniej więcej po środku, przy switch. Wprowadziłem nad nim zmienną x, ale po kompilacji wyskakuje błąd "uninitialized local variable 'x' used...". Mam nadać jakąś bazową wartość tej zmiennej? Szukałem po wątkach ale nie umiałem wywnioskować nic konkretnego lub tego czego bym nie wiedział. Pisałem w Visual Studio, z góry dzięki za odpowiedź. Tak nawiasem mówiąc, program wczoraj działał, następnego dnia nie zmieniając nic po prostu nie chce przepuścić kompilacji przez tego switcha :/.