logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Weryfikacja programu w C: wczytywanie liczb, min, max, średnia, liczby pierwsze

butol25 22 Maj 2008 20:08 5042 16
REKLAMA
  • #1 5169335
    butol25
    Poziom 10  
    Posty: 39
    Mam do napisania dwa programy w c coś tam napisałem ale nie wiem czy dobrze.Czy ktos mógłby zweryfikować poprawność tego programu.
    Program ma wczytać losowo 1000 liczb , wyswietlic min i max oraz srednia arytmetyczną a także policzyć liczby pierwsze choć tego ostatniego nie zrealizowałem bo nie wiem jak.
    Oto mój program:
    #include <stdio.h>
    int main ();{
    int a[1000]
    for (i=0,i<1000, i++)
    int max (int a,b);
    if (a>b return a;max
    else return b;min
    doubel sr arytmetyczna (double a[];
    double suma=0;
    for (i=0;i<nMax;i++) suma a+=a[i];
    }


    nie wiem na ile to jest dobry program nie bardzo wiem jak go napisać ale może jakieś wskazówki.
  • REKLAMA
  • #2 5169347
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    Po pierwsze to weź kod w znaczniki code. Po drugie... przepuściłeś to przez kompilator? Bo ja tam widze z miliard błędów, nie tylko związanych z zadaniem programu, ale również ze składnią języka. Znasz chociaż podstawy programowania w C++?
  • #3 5169378
    butol25
    Poziom 10  
    Posty: 39
    Nie przepuściłem go przez kompilator. A z podstawami to ciężko u mnie, nie ma co ukrywać.
  • REKLAMA
  • #4 5169398
    JIIIS
    Poziom 17  
    Posty: 246
    Pomógł: 28
    Ocena: 21
    O boooze :D

    #include <stdio.h>
    
    int max(int a, int b)
    {
    	if (a > b)
    		return a;
    	else
    		return b;
    }
    
    
    float srednia_arytmetyczna(float* a)
    {
    	float suma = 0;
    	for (int i=0; i < 1000; i++)
    		suma += a[i];
    	return suma / 1000;
    }
    
    int main (void)
    {
    }
    
  • REKLAMA
  • #5 5169401
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    Chciałem wyodrębnić po kolei każdy błąd, ale tam conajmniej w każdej linijce jest błąd, podkreślam że CONAJMNIEJ jeden na linijke! Proponuje poczytać ogólnie o podstawach C++. Jakieś średniki w złych miejscach, brak zamykających nawiasów klamrowych, dziwne funkcje jak "sr arytmetyczna" (brak deklaracji, definicja, błędna nazwa). Nie no, ten cały program jest jednym wielkim błędem, polecam przeczytanie tutorialu z www.gamedev.pl i przepisanie tego wszystkiego od nowa.
  • REKLAMA
  • #6 5169496
    butol25
    Poziom 10  
    Posty: 39
    Dzięki chyba tak trzeba z robić zacząć od podstaw choć czasu mało
  • #7 5183669
    butol25
    Poziom 10  
    Posty: 39
    chciałbym sie zapytać czy teraz juz lepeij ten program wygląda i działa

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define ROZM_TABL 20
    #define LICZBA_LOS_MIN 0
    #define LICZBA_LOS_MAX 100
    /* ------------------------------ */
    double srednia(int tabl[], int nelem);
    int minIndex(int tabl[], int nelem);
    int maxIndex(int tabl[], int nelem);
    /* ------------------------------ */
    int losuj(int min, int max)
    {
    return rand() % (max – min + 1) + min;
    }
    /* ------------------------------ */
    int main()
    {
    int tabl[ROZM_TABL];
    int i;
    int MinIdx, MaxIdx;
    double Sr;
    srand((unsigned int)time(NULL));
    for(i = 0; i < ROZM_TABL; i++)
    tabl[i] = losuj(LICZBA_LOS_MIN, LICZBA_LOS_MAX);
    Sr = srednia(tabl, ROZM_TABL);
    MinIdx = minIndex(tabl, ROZM_TABL);
    MaxIdx = maxIndex(tabl, ROZM_TABL);
    return 0;
    }
  • #8 5183852
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 225
    no czy działa, to sam sobie możesz sprawdzić w kompilatorze... a wygląda - nie widzę ciał funkcji srednia, minIndex i maxIndex.
    Uzywaj wcięć kodu dla każdej funkcjonalnej części - łatwiej się czyta.
  • #9 5183868
    butol25
    Poziom 10  
    Posty: 39
    w tym problem ze wpisałem przed chwilą w kompilator i nie chce działać i nie wiem dlaczego
  • #11 5183950
    butol25
    Poziom 10  
    Posty: 39
    przemówił ale nie rozumiem go STRAY"\150' in program
  • #12 5184039
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 225
    pisałeś sam czy kopiowałeś skąś? w ktorej linii ten błąd? sprawdź wszystkie znaki "-" czy przypadkiem którys nie jest półpałzą zamiast minusem.
  • #13 5184071
    butol25
    Poziom 10  
    Posty: 39
    szczerze to posłużyłem sie znalezionym wzorcem ale napisałem sam. Błąd znalazłem tylko teraz wypisuje mi kolejne komunikaty dotyczące pewnie tego co wcześniej napisałeś, ale z tym to nie wiem jak sobie poradzić ,

    [Linker error] undefined reference to `srednia(int*, int)'
    [Linker error] undefined reference to `minIndex(int*, int)'
    [Linker error] undefined reference to `maxIndex(int*, int)'
  • #15 5184306
    butol25
    Poziom 10  
    Posty: 39
    a jak to zrobić i takie jeszcze jedno gdzie wstawic printa by wyświetlił mi max min i srednia ? bo jak narazie nie mam żadnego pomysłu
  • #16 5184419
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 225
    butol25 napisał:
    a jak to zrobić
    Napisać
    butol25 napisał:
    i takie jeszcze jedno gdzie wstawic printa by wyświetlił mi max min i srednia ?
    Tam, gdzie chcesz by wyświetlał Ci max min i średnią.
  • #17 5187367
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    zanim zabierzesz się za pisanie programów, poczytaj chociaż o podstawach! Nie da się użyć funkcji, których nie zdefiniowałeś! Skąd niby komputer ma wiedzieć, co robią Twoje funkcje?

Podsumowanie tematu

✨ Dyskusja dotyczy weryfikacji programu w języku C, który ma wczytać 1000 losowych liczb, wyświetlić wartości minimalne, maksymalne, obliczyć średnią arytmetyczną oraz policzyć liczby pierwsze. Pierwotny kod zawierał liczne błędy składniowe i logiczne, m.in. brak deklaracji zmiennych, błędne nawiasy, niepoprawne funkcje i brak kompilacji. Uczestnicy forum zalecili naukę podstaw programowania w C/C++, poprawne formatowanie kodu oraz definiowanie wszystkich funkcji przed ich użyciem. Przykładowo zaproponowano funkcje max, średnia_arytmetyczna, minIndex i maxIndex, jednak autor miał problemy z błędami kompilatora i linkerem, wynikającymi z braku definicji tych funkcji. Wskazano także na konieczność użycia poprawnych znaków (np. minus zamiast półpauzy) oraz umieszczania instrukcji printf w odpowiednich miejscach programu, aby wyświetlić wyniki. Podkreślono, że bez znajomości podstaw i poprawnej składni nie da się napisać działającego programu.
Wygenerowane przez model językowy.
REKLAMA