[c++]Co jest nie tak? [temat jest nie tak]

0

Mam maly problem... Napisalem program ktory z zalozenia mial wykonywac dzialania na tablicach niestety cos wyszlo nie tak :/ Blad tkwi w breakach znajdujacych sie w casach :/ A mianowicie jesli usune breaki to program dziala ale wykonuja sie wszystkie operacje, a chodzi o to zeby wykonywala sie tylko ta operacja ktora zazyczy sobie uzytkownik. Czy moze mi ktos pomoc? Zamieszczam kod programu:
#include <iostream.h>
#include <conio.h>
int Tab1[2][2];
int Tab2[2][2];
int Tab3[2][2];
main()
{
int i;
for (i=0 ; i<5 ;i++);
{
cout << "Program wykonuje dzialania na tablicach" << endl;
cout << "Podaj wartosci pierwszej tablicy :" << endl;
cin >> Tab1[0][0];
cin >> Tab1[0][1];
cin >> Tab1[1][0];
cin >> Tab1[1][1];
{
int i;
for (i=0 ; i<5 ;i++);
{
cout << "Podaj wartosci drugiej tablicy :" << endl;
cin >> Tab2[0][0];
cin >> Tab2[0][1];
cin >> Tab2[1][0];
cin >> Tab2[1][1];
{
int operacja;
cout << "Jaka operacje wykonac?" << endl;
cout << "1-odejmowanie \n2-dodawanie \n3-mnozenie \n4-dzielenie" << endl;
cin >> operacja;
switch(operacja)
{
case 1:
Tab3[0][0]=Tab1[0][0]-Tab2[0][0];
cout << Tab3[0][0] << endl;
Tab3[0][1]=Tab1[0][1]-Tab2[0][1];
cout << Tab3[0][1] << endl;
Tab3[1][0]=Tab1[1][0]-Tab2[1][0];
cout << Tab3[1][0] << endl;
Tab3[1][1]=Tab1[1][1]-Tab2[1][1];
cout << Tab3[1][1] << endl;
break ;

        case 2:
    Tab3[0][0]=Tab1[0][0]+Tab2[0][0];
    cout << Tab3[0][0] << endl;
    Tab3[0][1]=Tab1[0][1]+Tab2[0][1];
    cout << Tab3[0][1] << endl;
    Tab3[1][0]=Tab1[1][0]+Tab2[1][0];
    cout << Tab3[1][0] << endl;
    Tab3[1][1]=Tab1[1][1]+Tab2[1][1];
    cout << Tab3[1][1] << endl;
        break ;
        
        case 3:
    Tab3[0][0]=Tab1[0][0]*Tab2[0][0];
    cout << Tab3[0][0] << endl;
    Tab3[0][1]=Tab1[0][1]*Tab2[0][1];
    cout << Tab3[0][1] << endl;
    Tab3[1][0]=Tab1[1][0]*Tab2[1][0];
    cout << Tab3[1][0] << endl;
    Tab3[1][1]=Tab1[1][1]*Tab2[1][1];
    cout << Tab3[1][1] << endl;
        break ;
        
        case 4:
    Tab3[0][0]=Tab1[0][0]/Tab2[0][0];
    cout << Tab3[0][0] << endl;
    Tab3[0][1]=Tab1[0][1]/Tab2[0][1];
    cout << Tab3[0][1] << endl;
    Tab3[1][0]=Tab1[1][0]/Tab2[1][0];
    cout << Tab3[1][0] << endl;
    Tab3[1][1]=Tab1[1][1]/Tab2[1][1];
    cout << Tab3[1][1] << endl;
        break ;
        
        default:
    cout << "Wpisales " << operacja << "Zla cyfra!!!" << endl;
        break ;
        
    getch();
    }    
}    

}
}
}
}

0

Sprobuj zamienic "break" na "return 0"
Tylko najpierw zmien z "main()" na "int main()"

// akurat deklaracja funkcji bez typu, to domyslna deklaracja funckji zwracającej int,
// więc nie ma znaczenia czy przed main będzie int czy też nie,
// kwestia tylko czytelności źródła [mf]

0

wiesz co wrzucilem to do Deva ( troszke upiekszylem kod) i sie normalinie kompiluje idziala ( deuger tez nic nie pokazal) kod wyglada tak samo ( wiec jak chcesz to wkleje /przesle ci kod). tylko zastanawia mnie dlaczeog 1 2 3 4 * 1 2 3 4 daje 1 4 4 16 :)
no ale program dziala.

0

Ja wrzuciłem kod do Visual Studio i działa. Także nie wiem w czym problem. Jedynie moją wątpliwośc wzbudza algorytm mnożenia tablic bo jeśli to mają być macierze to niestety nie jest to dobre...</ort>

1 użytkowników online, w tym zalogowanych: 0, gości: 1