Widzę tutaj naruszenie stosu. Zdaje się, że przekroczyłeś tablicę. Zadeklarowałeś 4-elementową (składającą się z elementów: 0, 1, 2, 3), a próbujesz skorzystać z piątego elementu (zapisujesz element stosu poza zadeklarowanym obszarem).
Osobiście takie sortowanie wykonałbym tak:
#include
#include
int main (int argc, char * const argv[])
{
int a[4];
//int i, b;
printf("Prosze podac 4 elementy tablicy, zostana one posortowane rosnaco:\n");
for(int i=0; i<4 ; ++i) //od 0 do 4 (wlacznie) masz 5 elementow: 0, 1, 2, 3 i 4; dlatego bierzemy zbior <0;4)
scanf("%d",&a[i]);
printf("Posortowane elementy tablicy:\n");
//i=0;
/*while(i<4)
{
if (a[i]>a[i+1])
{
b=a[i+1];
a[i+1]=a[i];
a[i]=b;
}
else ++i;
}
*/
//sortowanie babelkowe
int wielkosc = 4; //wielkosc - rozmiar tablicy
bool sortuj=true;
while(sortuj)
{
sortuj = false;
for(int b=0; b
{
if(a[b]>a[b+1])
{
int c;
c=a[b];
a[b]=a[b+1];
a[b+1]=c;
sortuj = true;
}
}
}
for(int i=0; i<4; ++i)
printf("%d\n",a[i]);
return 0;
}