Pokaż wyniki 1 do 3 z 3

Temat: Sort babelkowe i karciane. Dziwne liczby! C

  1. #1
    Zarejestrowany
    Jan 2010
    Postów
    5

    Domyślnie Sort babelkowe i karciane. Dziwne liczby! C

    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);
    }
    }
    }

  2. #2
    Zarejestrowany
    Jan 2007
    Postów
    97

    Domyślnie

    Uzywaj wciec!!!!. Poprawione

    Kod:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.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);
    scanf("%s",&c);
    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");
    scanf("%s",&c);
    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(NULL));
    
    for(i=0; i<n; i++)
    {
    tabin[i] = rand()%20+1;
    }
    
    }
    
    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<n; 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);
    }
    }
    }
    Człekowstret tryska z moich ust, parszywy kraj...

    perl -e 's^^i6([email protected]*^+s;\*; Wo\$_\;~;.s![(_\!]!l!g+y"i\[email protected]"Hro"+tr-6;~-ed\012-;print'
    --------------------------------------------------------------
    Most Intelligent Customers Realize Our Software Only Fools Teenagers

  3. #3
    Zarejestrowany
    Jan 2010
    Postów
    5

    Domyślnie

    ok dzieki za pomoc

Podobne wątki

  1. Liczby pseudolosowe*Wirtualne Kasyno*Ruletka
    By Szarry in forum Matematyka/Liczby/Kody/Teoria Chaosu
    Odpowiedzi: 10
    Autor: 08-04-2015, 02:36
  2. Odpowiedzi: 1
    Autor: 10-23-2009, 18:39
  3. Dziwne wyniki
    By r_jaro in forum C/C++
    Odpowiedzi: 0
    Autor: 08-25-2009, 06:25
  4. ip dziwne pytanie
    By gelman in forum TCP/IP/Analiza/Badanie
    Odpowiedzi: 12
    Autor: 10-17-2008, 16:08
  5. Delphi najbliżej położone liczby.
    By kosiarz in forum Delphi/Pascal/Lisp
    Odpowiedzi: 5
    Autor: 03-01-2007, 06:53

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52