#include <iostream>
#include <string>
#include <ctime>
#include <windows.h>
using namespace std;
int rozmiarTab=10; //nadalem narazie warotsc zeby pozniej ja usunac jak dodam opcje samodzilengo ustalania rozmiaru
void wyswietlTablice(int tablica[], int rozmiarTab) //wyswietla tablice1
{
cout<<"[";
for (int i=0; i<rozmiarTab; i++)
{
if(i!=0)
{
cout<<",";
}
cout<<tablica[i];
//Sleep (500);
}
cout<<"]";
}
void wyswietlTablice2(int tablica2[], int rozmiarTab) //wyswietla tablice 2 (chyba da sie to poloczyc z wyswietlaniem tablicy1 ale nie probowalem)
{
cout<<"[";
for (int i=0; i<rozmiarTab; i++)
{
if(i!=0)
{
cout<<",";
}
cout<<tablica2[i];
//Sleep (500);
}
cout<<"]";
}
void sortuj(int tablica[],int rozmiarTab) //sortowanie babelkowe
{
int n;
for (int j=n-1; j>0; --j)
{
for (int i=0; i<j; ++i)
{
if (tablica[i]>tablica[i+1])
{
int temp=tablica[i];
tablica[i]=tablica[i+1];
tablica[i+1]=temp;
}
}
}
}
void wczytanieTablicy(int tablica[], int rozmiarTab) // zapisuje tablice1 randomowo lub po koleji(zeby sprawdzic czy program poprawnie rozpoznaje)
{
srand(time(NULL));
for(int i=0; i<rozmiarTab; i++)
{
tablica[i]=i;// rand()%100;
}
}
void duplikacjaTablicyISortowanie2(int tablica[], int tablica2[], int rozmiarTab) //najpierw zapisuje tablice1 i ja wyœwietla, potem kopiuje tablice 1 do tablicy 2, soruje tablice1
//i nastepnie sortuje tablice2 i ja wyswietla
{
wczytanieTablicy(tablica, rozmiarTab);
cout<<"Tablica 1 wejsciowa: \n";
wyswietlTablice(tablica, rozmiarTab);
cout<<" \n";
for(int i=0; i<rozmiarTab; i++)
{
tablica2[i]=tablica[i];
}
cout<<"Tablica 1 posortowana: \n";
sortuj(tablica, rozmiarTab);
wyswietlTablice(tablica, rozmiarTab);
cout<<" \n";
cout<<"Tablica 2 skopiowana: \n";
wyswietlTablice2(tablica2, rozmiarTab);
cout<<" \n";
}
void sprawdzanieZgodnosci(int tablica[], int tablica2[], int rozmiarTab)
{
bool powtarza;
duplikacjaTablicyISortowanie2(tablica, tablica2, rozmiarTab);
for (int i=0; i<rozmiarTab; i++)
{
for(int j=0; j<i; j++)
{
if(tablica2[j]==tablica[i])
{
powtarza=true;
}
else if(tablica2[j]!=tablica[i])
{
powtarza=false;
}
}
}
if (powtarza==true)
{
cout<<"Posortowane\n";
}
else if (powtarza==false)
{
cout<<"Nie posortowane\n";
}
}
int main()
{
int tablica[rozmiarTab];
int tablica2[rozmiarTab];
sprawdzanieZgodnosci(tablica, tablica2, rozmiarTab);
}
Witam, robiąc zadanie z książki które polega na tym aby napisać program który będzie sprawdzał czy tablica wpisana jest posortowana czy nie. I natrafiłem na problem ze sprawdzaniem czy jest czy nie. Jedyny sposób jaki udało mi się to zrobić to napisanie warunku:
if(tablica2[1]==tablica[1] && tablica2[rozmiarTab/2]==tablica[rozmiarTab/2] && tablica2[rozmiarTab-1]==tablica[rozmiarTab-1])
{
powtarza=true;
}
else
{
powtarza=false;
}
if (powtarza==true)
{
cout<<"Posortowane\n";
}
else if (powtarza==false)
{
cout<<"Nie posortowane\n";
}
}
Ale zakładam że nie jest to najwydajniejszy sposób, także zwracam się z prośbą o pomoc.