Hirdetés

Új hozzászólás Aktív témák

  • Retekegér
    MODERÁTOR

    De van. Ugyanis ebben a formában a generált véletlenszámok 12.34 egész számú többszörösei lesznek. Hogy ez miért jó azt csak a feladat ismeretében lehetne tudni.

    Itt a teljes feladat:

    #include <stdio.h>
    #include <stdlib.h>
    #define NELEM 1000

    main()
    {
    double *pd, sv;
    int i , j, lepes;

    /* Helyfoglalás ellenőrzéssel */
    pd = (double *) calloc( NELEM, sizeof(double));
    if (! pd) {
    printf("\a\nNincs elég memória!\n");
    return -1; /* Hiba történt */
    }

    /* A tömb feltöltése véletlen számokkal */
    for (i = 0; i < NELEM; i++)
    *(pd + i) = random(10000)*12.34;

    /* Shell - rendezés */
    for (lepes = NELEM/2; lepes >0; lepes /=2)
    for (i = lepes; i < NELEM; i++)
    for (j=i-lepes; j>=0 && pd[j]>pd[j+lepes]; j-=lepes)
    {
    sv = pd[j];
    pd[j] = pd[j+lepes];
    pd[j+lepes]= sv;
    }

    /* A lefoglalt terület felszabadítása */
    free(pd);

    return 0; /* Hibátlan volt a program futása */
    }

Új hozzászólás Aktív témák