#include <iostream>
#include <time.h>
#include <cstdlib>
#include <conio.h>
using namespace std;
int main()
{
unsigned const int i = 10;
int tab[i]; // tab[0] tab[1] tab[2] ... tab[8] tab[9]
double save;
srand(time(NULL));
cout << "Liczby przed sortowaniem: ";
//for (int k = 0; k <= i; k++) nie k<=i , bo wtedy wykona się 11 razy, do tego dla 0<=k<=10 , tab[k]:
// tab[0] tab[1] tab[2] ... tab[9] tab[10] - tab[10] nie zostało zadeklarowane
for (unsigned int k = 0; k < i; k++)
{
cout << endl;
// tab[i] = rand(); tab[i] to to samo co tab[10]
tab[k]=rand();
//if (tab[i] == 0)
if (tab[k] == 0)
{
do
{
//tab[i] = rand();
tab[k] = rand();
cout << tab[k];
} //while (tab[i] != 0);
while (tab[k] != 0);
}
else
cout << //tab[i];
tab[k];
}
cout << endl;
cout << endl;
cout << "============" << endl;
cout << endl;
cout << "Liczby po sortowaniu: ";
// if - instrukcja warunkowa wykonuje się tylko raz
/* DO POPRAWY
if (tab[i] > tab[i + 1])
{
cout << endl;
save = tab[i + 1];
tab[i + 1] = tab[i];
tab[i] = save;
cout << tab[i];
}
*/
_getch();
}
Jeśli deklarujesz jakąś zmienną albo stałą (tutaj stała "i" ), musisz zapamiętać do czego służy. Ja poprawiłem ci losowanie liczb do tablicy, ty popraw algorytm sortujący.