Problem zadania w języku [C]

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:

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.

#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){

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

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];

1 użytkowników online, w tym zalogowanych: 0, gości: 1