Witam,
Napisałem program rozwiązujący algorytm węgierski. Przy kompilacji wywala ten sam błąd w trzech różnych miejscach.
#include <iostream>
#include <cstdlib>
#include <math.h>
#include <fstream>
using namespace std;
int main() {
int x = 0;
while (x > 3 || x < 1)
{
cout << "*******************MENU********************" << endl;
cout << "1.Podawanie losowych wartosci nxn tablicy" << endl;
cout << "2.Podawanie w³asnych wartosci do tablicy" << endl;
cout << "3.Wczytanie macierzy z pliku" << endl;
cout << "Wybieram : ";
cin >> x;
system("cls");
}
switch (x)
{
case 1:
{
//podanie wielkość macierzy
int n, x, y = 0;
cout << "podaj wielkosc" << endl;
cin >> n;
cout << "podaj zakres poczatkowy" << endl;
cin >> x;
cout << "podaj zakres koncowy" << endl;
cin >> y;
cout << endl;
int tab[n][n];
// wczytywanie danych do tablicy
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
{
tab[i][j] = rand() % (y - x + 1) + x;
}
}
// tworzenie pliku i sprawdzanie czy istnieje
fstream tablica;
string nazwapliku;
cout << "Podaj nazwe pliku: ";
cin >> nazwapliku;
nazwapliku += ".txt";
tablica.open(nazwapliku.c_str(), ios::out);
if (!tablica.good())
{
cout << "Nie udalo sie utworzyc pliku!\n";
}
else
{
cout << "Plik został utworzony!\n";
}
// odczyt danych z tablicy
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
{
cout << tab[i][j] << " ";
tablica << tab[i][j] << " ";
}
tablica << endl;
cout << endl;
}
tablica.close();
cout << endl << endl;
break;
}
case 2:
{
//tworzenie tablicy
int n = 0;
cout << "podaj wielkosc" << endl;
cin >> n;
int tab[n][n];
// wczytywanie danych do tablicy
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
{
cin >> tab[i][j];
}
}
//tworzenie pliku i sprawdzanie i zapis
fstream tablica;
string nazwapliku;
cout << "Podaj nazwe pliku: ";
cin >> nazwapliku;
nazwapliku += ".txt";
tablica.open(nazwapliku.c_str(), ios::out);
if (!tablica.good())
{
cout << "Nie udalo sie utworzyc pliku!\n";
}
else
{
cout << "Plik został utworzony!\n";
}
// odczyt danych z tablicy
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
{
cout << tab[i][j] << " ";
tablica << tab[i][j] << " ";
}
tablica << endl;
cout << endl;
}
tablica.close();
cout << endl << endl;
}
break;
case 3:
{
//tworzenie tablicy
int n = 0;
cout << "podaj wielkosc" << endl;
cin >> n;
int tab[n][n];
//wczytanie pliku i tablicy
{
ifstream plik1;
string nazwapliku;
cout << "Podaj nazwe pliku: ";
cin >> nazwapliku;
nazwapliku += ".txt";
plik1.open(nazwapliku.c_str(), ios::in);
if (plik1.good() == true)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
plik1 >> tab[i][j];
}
}
}
plik1.close();
}
//wyswietlanie tablicy
{ cout << "Tablica: " << endl << endl;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << tab[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
}
break;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Wywala takie błędy: