Problem zadania w języku [C]

Problem zadania w języku [C]
luminiare
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:1
0

Witam jest to mój pierwszy post i mam do zrobienia następujące zadania.

  1. Wygenerować tablicę liczb pseudolosowych (int) z zadanego przedziału.
  2. Policzyć sumę elementów tablicy.
  3. Policzyć średnią elementów tablicy.
  4. Wygenerować histogram elementów tablicy.

Coś już zrobiłem ale więcej nie umiem.

Muszę użyć następujących rzeczy:

Kopiuj
void wypelnijTabliceLiczbamiPseudolosowymi(int* tablica, int min, int max);
void wypiszTablice(int* tablica);
int sumaElementow(int* tablica);
float sredniaElementow(int* tablica);
void generujHistogram(int* tablica, int* histogram);
void wypiszStatystki(int *tablice, int sum, float srednia, int* histogram)

Tutaj jest moja praca którą, już zrobiłem ale niestety mam dalej problem.

Kopiuj
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define rozmiartablicy 10
#define MIN 1
#define MAX 10

void wypelnijTabliceLiczbamiPseudolosowymi(int* tablica, int min, int max);
void wypiszTablice(int* tablica);
int sumaElementow(int* tablica);
float sredniaElementow(int* tablica);
void generujHistogram(int* tablica, int* histogram);
void wypiszStatystki(int *tablice, int sum, float srednia, int* histogram);

int main() {
    int tablica[MAX];
    int histogram;

    wypelnijTabliceLiczbamiPseudolosowymi(tablica, MIN, MAX);
    wypiszTablice(tablica);
    sumaElementow(tablica);
    sredniaElementow(tablica);
    generujHistogram(tablica, histogram);

    return 0;
}

void wypelnijTabliceLiczbamiPseudolosowymi(int* tablica, int min, int max){
    srand(time(0));
    for (int i=0; i<rozmiartablicy; i++){
        tablica[i] = (rand() %(max-min)) + min;
    }
}

void wypiszTablice(int* tablica){
    printf("--------------------\n");
    for (int i=0; i<rozmiartablicy; i++){
        printf("%d ", tablica[i]);
    }
    printf("\n--------------------\n");
}

int sumaElementow(int* tablica){
    int suma=0;
    for (int i=0; i<rozmiartablicy; i++){
        suma = suma + tablica[i];
    }
    printf("suma elementow tablicy to: %d\n", suma);
}

float sredniaElementow(int* tablica){
    float suma=0;
    float srednia=0;
    for (int i=0; i<rozmiartablicy; i++){
        suma = suma + tablica[i];
    }
    srednia = suma / rozmiartablicy;
    printf ("srednia elementow tablicy to: %.2f", srednia);
}

void generujHistogram(int* tablica, int* histogram){

}
edytowany 5x, ostatnio: kq
rajszym
Zgaduję, że w histogramie masz zawrzeć ilość wystąpień każdej liczby z przedziału MIN/MAX w wygenerowanej tablicy. Opisz zatem z czym dokładnie masz problem.
luminiare
Nie wiem jak zrobić ten histogram nie wiem jak to zacząć. A jeszcze musimy użyć "void wypiszStatystki" aby wszystko zostano napisane czytaj suma, średnia i histogram.
rajszym
  • Rejestracja:prawie 6 lat
  • Ostatnio:ponad rok
  • Postów:62
0
  1. histogram musi być zadeklarowany inaczej, podobnie jak tablica, lecz o innej wielkości
  2. potrzebna deklaracja zmiennych suma i srednia, które powinieneś zwracać (a nie robisz tego, za to niepotrzebnie wypisujesz wartości) z odpowiednich funkcji
  3. Tak jak napisałem w komentarzu w histogramie musisz zawrzeć (zliczyć) ilość wystąpień każdej liczby z przedziału MIN/MAX w wygenerowanej tablicy
  4. tablica też jest źle zadeklarowana
edytowany 1x, ostatnio: rajszym
luminiare
próbowałem już na różne sposoby i niestety nie wychodzi mi to ani trochę ;c
rajszym
Zliczasz ile razy każda liczba z przedziału MIN/MAX występuje w tablicy i zapisujesz to do histogramu
luminiare
Siedzę nad tym od 8 i mam to oddać do końca dnia. Odpocznę trochę i spróbuję jeszcze raz. Trochę nowy jestem w programowaniu dlatego mam problem. No ale cóż trzeba próbować :D
rajszym
Google: zliczanie wystąpień elementu w tablicy
lion137
  • Rejestracja:ponad 8 lat
  • Ostatnio:11 minut
  • Postów:4944
0

Nie wiem jak zrobić ten histogram nie wiem jak to zacząć

https://duckduckgo.com/?t=canonical&q=frequencies+algorithm+c&atb=v219-1&ia=web


_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:17 dni
0

Algorytm na histogram przy twoich założeniach jest bardzo skomplikowany bo się składa z 2! punktów:

  1. Zeruj tablicę histogram
  2. Dla każdego elementu v z tablica zrób: ++histogram[v-1];

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.