Witam,
mam program ktory sortuje liczby babelkowo albo w sposob karciany w jezyku C. Program sie bez problemu kompiluje tyle ze gdy sortuje babelkowo to dziwne liczby powstaja. A w sposobie karcianym jest wszystko ok.
To jest kod tego programu. Moze ktos wie jak to poprawic?
Pozdrawiam

#include <stdio.h>
#include <stdlib.h>

void recznie(int tabin[], int n);
void losowo(int tabin[], int n);

void sort_b(int tabout[], int n);
void sort_k(int tabout[], int n);

int main(void)
{
int i, n, w;
int tabin[100], tabout[100];
char c;

do
{
w = 0;
printf("Podaj, ile liczb chcesz wprowadzic (maks. 100):\nn=");
scanf("%d", &n);
printf("Wybierz metode wprowadzenia %d liczb (r- recznie, l - losowo):\n", n);
c = getch();
switch(c)
{
case 'r': case 'R':
recznie(tabin, n);
break;
case 'l': case 'L':
losowo(tabin, n);
break;
default:
w = 1;
system("cls");
break;
}
}while(w);

printf("\n\n");

for(i=0; i<n; i++)
tabout[i] = tabin[i]; //"przepisanie" tablicy tabin do tablicy tabout

do
{
w = 0;
printf("Wybierz metode sortowania ciagu (b - sortowanie babelkowe, k - sortowanie karciane):\n");
c = getch();
switch(c)
{
case 'b': case 'B':
sort_b(tabout, n);
break;
case 'k': case 'K':
sort_k(tabout, n);
break;
default:
w = 1;
system("cls");
break;
}
}while(w);

system("cls");
printf("Ciag wprowadzony:\n");
for(i=0; i<n; i++)
printf("%d\t", tabin[i]);

printf("\n\n");

printf("Ciag posortowany:\n");
for(i=0; i<n; i++)
printf("%d\t", tabout[i]);

printf("\n\n");

system("PAUSE");
return 0;
}


void recznie(int tabin[], int n) //reczne wprowadzanie liczb
{
int i;

system("cls");

for(i=0; i<n; i++)
{
printf("a%d = ", i+1);
scanf("%d", &tabin[i]);
}
}

void losowo(int tabin[], int n) //losowe wprowadzanie liczb
{
int i;

system("cls");

srand(time(0));

for(i=0; i<n; i++)
{
tabin[i] = rand();
}

}

void sort_b(int tabout[], int n) //Deklaracja funkcji odpowiedzialnej za sortowanie liczb
{
int i, p, tmp = 0;

do
{
p = 0;
for(i=0; i<99; i++)
{
if(tabout[i]>tabout[i+1])
{
tmp = tabout[i];
tabout[i] = tabout[i+1];
tabout[i+1] = tmp;
p = 1;
}
}
}while(p!=0);
}

void sort_k(int tabout[], int n) //sortowanie karciane
{
int i, tmp, w;

w = n;

for(i=n; i>=2; i--)
{
if(tabout[i-1]<tabout[i-2])
{
tmp = tabout[i-1];
tabout[i-1] = tabout[i-2];
tabout[i-2] = tmp;
sort_k(tabout, n);
}
}
}