Na wstępie, sorry, że nowy temat ale coś konto mi się skasowało i nie mogłem go edytować.
Otóż, mam problem z powróceniem do głównego menu. Próbowałem z goto ale program się sypał... więc pytam tu... Co do programu, to kod poniżej poza tym o co chodzi, chciałbym aby pierwsza i druga opcja byla wykonywana obowiązkowo, by reszta opcji zadziałała. Powiedzcie co i jak. Bo już mnie to irytuje, a nad samym menu siedzę już czwarty dzień i nic ...
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <stdio.h>
using namespace std;
/* przykład: transpozycja tablicy dwuwymiarowej, kwadratowej */
void transpozycja(float **tab, int n);
void wyswietl_tab(float **tab, int n);
int wybor;
int main(void)
{
int n, i, j;
char znak;
/* cout<<"Liczba wierszy: "; cin>>n;
float **tab = new float *[n];
for(i=0;i<n;i++)
tab[i] = new float [n]; */
{
// cout<<"Wprowadz elementy wierszy oddzielone spacja: "<< endl;
// for(i=0;i<n;i++)
// for(j=0;j<n;j++)
// cin>>tab[i][j];
float **tab = new float *[n];
for(i=0;i<n;i++)
tab[i] = new float [n];
cout <<" Wybierz opcje - wpisujac odpowiednia cyfre \n\n";
cout <<" 1 to - Liczba wierszy \n\n" ;
cout <<" 2 to - Wprowadz elementy wierszy oddzielone spacja:\n\n";
cout <<"pozycja 1 i 2, jest OBOWIAZKOWA!!! \n\n";
cout << "3 to - Zawartosc tablicy przed transpozycja:\n\n";
cout << "4 to - Zawartosc tablicy po transpozycji:\n\n";
cout << "5 to - Wyjscie z programu \n\n";
cout << "Wybieram z menu liczbe "; cin >> wybor;
switch (wybor)
{ case 1:
{
cout<<"Liczba wierszy: "; cin>>n;
}
break;
case 2:
{ cout<<"Wprowadz elementy wierszy oddzielone spacja: "<< endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>tab[i][j];
}
break;
case 3: cout << "Zawartosc tablicy przed transpozycja:\n\n";
/* wyświtlamy zawartość tablicy */
wyswietl_tab(tab, n);
break;
case 4: cout << "\nZawartosc tablicy po transpozycji:\n\n";
/* algorytm transpozycji */
transpozycja(tab, n);
/* wyświtlamy zawartość tablicy po transpozycji*/
wyswietl_tab(tab, n);
cout << "\n";
break;
case 5:
exit(0);
break;
default: cout << "Nie ma takiej opcji w menu \n\n";
}
getchar();getchar();
system("cls");
return 0;
}
}
// funkcje
void wyswietl_tab(float **tab, int n)
{
int i, j;
for( i = 0; i < n; i++)
{
for( j = 0; j < n; j++)
cout << " " << setw( 3 ) << *(*(tab+i)+j); //tab[i][j];
cout << "\n";
}
}
void transpozycja(float **tab, int n)
{
float zm;
int i, j;
for (i = 0; i < n-1; i++)
for (j = i + 1; j < n; j++)
{
zm = *(*(tab+i)+j); //zm = tab[i][j];
*(*(tab+i)+j) = *(*(tab+j)+i); //tab[i][j] = tab[j][i];
*(*(tab+j)+i) = zm; //tab[j][i] = zm;
}
}
transpozycja
możesz normalnie odnosić się do tablicy, tak jak napisałeś w komentarzach.