Dobrý den,
jsem naprosty zacatecnik v programovani jako takovem. Mým úkolem bylo udělat funkci která s pomocí bubble sort setřídí n čísel. Ale povedlo se mi maximálně zapsat takový program ve funkci main. pomohl by mi někdo ja zapsat funkci bsort tak, aby to dělalo co má?
#include <stdio.h>
#define FNAME_WR "file_write.txt"
void bsort(int cteni, unsigned int n); //toto byl muj pokus udelat z programu funkci
void bsort(int cteni, unsigned int n)
{
int n, d, zamena;
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (cteni[d] > cteni[d+1])
{
zamena = cteni[d];
cteni[d] = cteni[d+1];
cteni[d+1] = zamena;
}
}
}
}
// zde zacina telo programu ktery ma nacist kolik znaku budeme tridit,
// pak ma nacist tento pocet znaku, vypsat tyto znaky, setritid,
//znovu zapsat a zapsat i do textoveho dokumentu
int main()
{
int cteni[100], c, n, d, zamena;
FILE *file;
printf("Zadej pocet cisel k serazeni:\n");
scanf("%d", &n);
printf("Zadej %d cisel\n", n);
for (c = 0; c < n; c++) {
scanf("%d", &cteni[c]);
}
printf("zadali jsme:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", cteni[c]);
bsort (cteni, n); // pred tim mi to fungovalo tak ze tento radek zde nebyl a komentar o radek
// nize byl casti kodu a ten chci nahradit tou funkci
/*
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (cteni[d] > cteni[d+1])
{
zamena = cteni[d];
cteni[d] = cteni[d+1];
cteni[d+1] = zamena;
}
}
}
*/
printf("Setrizeny seznam:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", cteni[c]);
file = fopen(FNAME_WR, "w");
if (file == NULL) {
printf("Nelze otevrit soubor pro zapis.\n");
return;
}
for (c = 0; c < n; c++) {
fprintf(file, "%d\n", cteni[c]);
}
fclose(file);
system("pause");
return 0;
}