1. Napisz program sprawdzający, czy tablica 10 liczb jest uporządkowana. Program powinien najpierw wczytać liczby do tablicy.
2. Napisz program, który po wczytaniu 10 liczb dodatnich całkowitych znajdzie wśród nich parę liczb o największej różnicy: a. bez sortowania danych b. po posortowaniu danych
3. Napisz program, który będzie porządkować malejąco tablicę 10 różnych liczb metodą a. bąbelkową b. przez wstawianie
Odpowiedź:
zad 1
#include <bits/stdc++.h>
using namespace std;
int main()
{
//zad 1
int T[10],i;
for(i = 0;i < 10;i++)
cin>>T[i];
for(i = 1;i < 10;i++)
if(T[i] < T[i-1])
break;
if(i < 10)
cout<<"NIE";
else
cout<<"TAK";
return 0;
}
zad 2
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T[10],i,MIN,MAX;
cin>>T[0];
MIN = MAX = T[0];
for(i = 1;i < 10;i++)
{
cin>>T[i];
if(T[i] > MAX)
MAX = T[i];
else if(T[i] < MIN)
MIN = T[i];
}
cout<<"Bez sortowania: "<<MIN<<" "<<MAX<<endl;
sort(T,T+10);
for(i = 0;i < 10;i++)
cout<<T[i]<<" ";
cout<<"Z sortowanie: "<<T[0]<<" "<<T[9]<<endl;
return 0;
}
zad 3
#include <bits/stdc++.h>
using namespace std;
void babelek(int T[],int R)
{
int i,j;
for(i = 0;i < R - 1;i++)
for(j = 0;j < R - 1 - i;j++)
if(T[j] < T[j+1])
swap(T[j],T[j+1]);
}
void wstawianie(int T[],int R)
{
int i,j;
for(i = 0;i < R - 1;i++)
for(j = R - 2 - i;j < R - 1;j++)
if(T[j] < T[j+1])
swap(T[j],T[j+1]);
else
break;
}
int main()
{
int T[10],i,MIN,MAX;
for(i = 0;i < 10;i++)
cin>>T[i];
babelek(T,10);
cout<<"Wynik sortowania babelkowego: ";
for(i = 0;i < 10;i++)
cout<<T[i]<<" ";
cout<<endl;
for(i = 0;i < 10;i++)
cin>>T[i];
wstawianie(T,10);
cout<<endl<<"Wynik sortowania przez wstawianie: ";
for(i = 0;i < 10;i++)
cout<<T[i]<<" ";
return 0;
}
Wyjaśnienie: