Witam, mam mały problem mianowicie mam do napisania program w którym użytkownik:
1.Najpierw wybiera rozmiar tablicy 10, 50 lub 100 elemetnowa
2. Następnie wybiera jakimi wartościami pseudolosowymi ma się uzupełnic tablia, także są trzy opcje
3. Wybiera jedną z dostępnych 9 opcji, którymi może pracować z tablicą
Mam przygotowane działanie wszystkich opcji, ale przy próbie zapisów Sittcha w switchu w switchu, wychodzi straszne zamieszania
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
srand(time(NULL));
int i,wybor_rozmiaru,wybor_opcji,wybor_losowosci,j;
cout<<"Program umożliwia działanie na wybranej tablicy"<<endl;
cout<<"Wybierz rozmiar tablicy na której chcesz pracować"<<endl;
cout<<"1- Tablica 10 elementowa"<<endl;
cout<<"2- Tablica 50 elementowa"<<endl;
cout<<"3- Tablica 100 elementowa"<<endl;
cin>>wybor_rozmiaru;
switch(wybor_rozmiaru)
{
case 1:
{
cout<<"Wybierz jak uzupełnić elementy tablicy"<<endl;
cout<<"1. Liczby losowe z przedziału [0;100]"<<endl;
cout<<"2. Liczby losowe z przedziału [50;100]"<<endl;
cout<<"3. Liczby losowe z przedziału [-1;1]"<<endl;
cin>>wybor_losowosci;
switch(wybor_losowosci)
{
case 1:
{
cout<<"Wybierz z której opcji chcesz skorzystać"<<endl;
cout<<"1. Wyświetl tablicę"<<endl;
cout<<"2. Wyznacz sumę oraz średnią arytmetyczną elementów w tablicy"<<endl;
cout<<"3. wyznacz sumę elementów zapisanych na parzystych pozycjach w tablicy"<<endl;
cout<<"4. Posortuj tablicę"<<endl;
cout<<"5. Odwróć tablicę"<<endl;
cout<<"6. przesuń wszystkie elementy w tablicy o jedną pozycję w prawo"<<endl;
cout<<"7. przesuń wszystkie elementy w tablicy o dwie pozycje w lewo"<<endl;
cout<<"8. wyznacz dwie najmniejsze wartości w tablicy oraz ich indeksy"<<endl;
cout<<"9. wyznacz która wartość pojawia się w tablic najczęściej i ile razy"<<endl;
cin>>wybor_opcji;
cout<<endl;
int tab10[10];
for(i=0;i<10;i++)
tab10[i]=rand()%101;
switch(wybor_opcji)
{
case 1:
{
for(i=0;i<10;i++)
cout<<tab10[i]<<" ";
cout<<endl;
}
break;
case 2:
{
double srednia;
int suma;
suma=0;
for(i=0;i<10;i++)
suma+=tab10[i];
srednia=suma/10.0;
cout<<"Suma elementów tablicy wynosi: "<<suma<<endl;
cout<<"Srednia wartosc elementu w tablicy wynosi: "<<srednia<<endl;
}
break;
case 3:
{
int suma;
suma=0;
for(i=0;i<10;i=i+2)
suma+=tab10[i];
cout<<"Suma elementów na parzystch pozycjach w tablicy jest równa: "<<suma<<endl;
}
break;
case 4:
{
int zamiana;
for(j=9;j>0;j--)
{
for(i=0;i<j;i++)
if(tab10[i]>tab10[i+1])
{
zamiana=tab10[i];
tab10[i]=tab10[i+1];
tab10[i+1]=zamiana;
}
}
cout<<"Posortowana tablica"<<endl;
for(i=1;i<10;i++)
cout<<tab10[i]<<" ";
}
break;
case 5:
{
cout<<"Tablica po odwroceniu: "<<endl;
for(i=9;i>=0;i--)
cout<<tab10[i]<<" ";
}
break;
case 6:
{
cout<<"Tablica po przesunieciu: "<<endl;
for(i=0;i<10;i++)
cout<<tab10[((i%10)+9)%10]<<" ";
}
break;
case 7:
{
cout<<"Tablica po przestawieniu: "<<endl;
for(i=0;i<10;i++)
cout<<tab10[(i+2)%10]<<" ";
}
case 8:
{
int min,min2,w_min,w_min2;
min=101;
min2=101;
w_min=0;
w_min2=0;
for(i=0;i<10;i++)
{
if(tab10[i]<=min)
{
min2=min;
min=tab10[i];
w_min2=w_min;
w_min=i;
}
else if(tab10[i]<min2)
{
min2=tab10[i];
w_min2=i;
}
}
cout<<"Dwie najmniejsze liczby to:"<<endl;
cout<<min<<" Indeks w tablicy "<<w_min<<endl;
cout<<min2<<" Indeks w tablicy "<<w_min2<<endl;
}
break;
case 9:
{
int licznik,wartosc,licznik_max,wartosc_max;
licznik_max=0;
for(i=0;i<10;i++)
{
wartosc=tab10[i];
licznik=0;
for(j=0;j<10;j++)
if(tab10[j]==wartosc)
licznik++;
if(licznik>licznik_max)
{
licznik_max=licznik;
wartosc_max=wartosc;
}
}
cout<<"Najczesciej wystepujacym elementem jest: "<<wartosc_max<<endl;
cout<<"Wystepuje "<<licznik_max<<" razy"<<endl;
}
break;
}
break;
Tu mam rozpisaną każdą możliwość dla tablicy 10 elemntowej o wartościach [0;100]
Chodzi o pomoc w ogarnięciu tych switchy, bo inaczej wychodzi 45 możliwości
Z góry dzięki za pomoc