Odpowiedz na ten temat
Strona 1 z 3 1 2 3 OstatniaOstatnia
Pokaż wyniki od 1 do 10 z 22
  1. Avatar nicp2
    Dołączył
    Apr 2008
    Skąd
    inąnd
    Postów
    310

    Cytuj | #1

    Witam, mam takie pytanie: Mam kod generujący przypadkowe punkty i potem punkty zachowane są w tablicy. Jak wyliczyć średnią dla x i średnią dla y z tego? Trzeba zsumować wszystkie wartości dla x i podzielić je przez n, i tak samo z igrekami. Ale ja nie wiem za bardzo jak to zrobic :/

    Kod php:
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <time.h>


    int main()
    {
        
    int n,i;
        
        
    srand( (unsignedtimeNULL ) );
        
    printf ("How many points do you want to generate?: \t");
        
    scanf ("%i", &n);
        
    double *x;
        
    double *y;
        
    = (double*)mallocsizeof(double) );
        
    = (double*)mallocsizeof(double) );
        for (
    i=0i<ni++)
        {
            
    x[i] = rand();
            
    y[i] = rand();
        }

        for (
    i=0i<ni++)
        {   
    printf ("point %i:\t"i+1);
        
    printf ("x:%lg"x[i]);
            
    printf ("\t\ty:%lg\n"y[i]);
        }
        
        
    //Generacja punktów OK 
    Pomocy!!!
    Ostatnio edytowane przez wojtkow ; 26.01.2011 o 19:15
    Komputer: MBP 13"
    Telefon: iP 4


  2. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    Cytuj | #2

    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.

  3. Avatar nicp2
    Dołączył
    Apr 2008
    Skąd
    inąnd
    Postów
    310

    Cytuj | #3

    Dzieki. A moglbys powiedziec gdzie widzisz błąd u mnie? Bo niezbyt wygląda to na coś co by działało. Jak dam wiecej niz 5 punktów to średnia jest 0 dla x i 0 dla y. Jestem bardzo świeży w C więc prosze o wyrozumiałość



    PS: wiem że w nawiasach po sizeof powinno być *x czyli
    int size_x= sizeof(x)/sizeof(*x);
    int size_y= sizeof(y)/sizeof(*y);
    Ale z tym czy bez tego działa tak samo. Czyli nie działa :P
    Ostatnio edytowane przez nicp2 ; 26.01.2011 o 19:30
    Komputer: MBP 13"
    Telefon: iP 4

  4. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    Cytuj | #4

    Nie widzę całości ale jeśli masz wartości double w tablicach, a chyba masz z tego co widzę, to sum_x i sum_y zmień z int na double. I potem jeszcze przy dzieleniu "sum_x/size_x", to "size_x" chyba też double by musiało być, ale tego nie jestem pewien. Wygląda mi to że tutaj jest problem u ciebie.
    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.

  5. Avatar krakers Łoś Superktoś
    Dołączył
    Dec 2008
    Skąd
    Nibylandia
    Postów
    7,635

    Cytuj | #5

    Ale po co liczyć size_x i size_y skoro masz to zdeklarowane w n?
    Komputer: Dell Latitude E6400 | C2D 3,06 | 8GB | MBA 13" 2011
    Telefon: iPhone 4 White, BB 9300
    Nie udzielam porad poprzez Prywatną Wiadomość. To uderza w charakter i sens istnienia forum, które daje każdemu prawo do zadania pytań i poznania odpowiedzi na nie.

  6. Avatar nicp2
    Dołączył
    Apr 2008
    Skąd
    inąnd
    Postów
    310

    Cytuj | #6

    heh, rzeczywiście No widzicie, jestem w tym dopiero malutkim nowicjuszem.
    dzieki!
    Komputer: MBP 13"
    Telefon: iP 4

  7. Avatar Roberto
    Dołączył
    Feb 2007
    Skąd
    Wrocław
    Postów
    11,866

    Cytuj | #7

    proponuję tuż po
    Kod:
    int size_x= sizeof(x)/sizeof(*x);
    int size_y= sizeof(y)/sizeof(*y);
    wstawić
    Kod:
    printf("size_x = %d \nsize_y = %d", size_x, size_y);
    żebyś sam zobaczył jaka to głupota ten 'wyliczany rozmiar' w przypadku dynamicznie tworzonych tablic

    tak na przyszłość ;]

    a tak jeszcze żeby namieszać trochę w głowie albo wyjaśnić to na górze - zrobić coś w stylu:
    Kod:
    printf ("\n%lg \n%lg \n%lg \n%lg", x[0], *x, x[1], *(x+1));
    (zakładając, że tablica ma co najmniej 2 elementy)
    Ostatnio edytowane przez Roberto ; 27.01.2011 o 10:28 Powód: hint był błędny ;]
    Komputer: MacBook Pro 13,3" 2,26GHz (Lion 10.7.3)
    Telefon: iPhone 4S
    Tablet: iPad 2 3G
    dlaczego nie korzystasz z opcji szukaj?
    http://ifiboughtyourappalreadycaniup...acappstore.com

  8. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    Cytuj | #8

    Jaką głupotę? To dobrze pokazuje ilość elementów w tablicy.
    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.

  9. Avatar Roberto
    Dołączył
    Feb 2007
    Skąd
    Wrocław
    Postów
    11,866

    Cytuj | #9

    e?
    Screen shot 2011-01-26 at 21.14.02.png
    mój mały eksperyment pokazał jednak coś zupełnie innego.
    to co pamiętam z C/C++ też temu przeczy.
    Komputer: MacBook Pro 13,3" 2,26GHz (Lion 10.7.3)
    Telefon: iPhone 4S
    Tablet: iPad 2 3G
    dlaczego nie korzystasz z opcji szukaj?
    http://ifiboughtyourappalreadycaniup...acappstore.com

  10. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    mój mały eksperyment pokazuje tak jak powinno być:
    Zrzut ekranu 2011-01-26 (godz. 21.18.33).png

    Ale ja się na C nie znam, gdzieś to:
    Kod:
    int rozmiar_tab1 = sizeof(tab1)/sizeof(*tab1);
    znalazłem na szybko w sieci i zadziałało jak oczekiwałem.
    Ostatnio edytowane przez macieks72 ; 26.01.2011 o 20:24
    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.

Odpowiedz na ten temat
Strona 1 z 3 1 2 3 OstatniaOstatnia