Declaraţi un pointer global de tip float. În funcţia main() citiţi o valoare întreagă m
care reprezintă dimensiunea tabloului de numere reale. Alocaţi memoria necesară
pentru stocarea tabloului şi citiţi elementele de la tastatură. Determinaţi valoarea
medie a celor m elemente şi calculaţi Mn=(sum(pow((xi-xmed),n))/m, unde n=1,2,3.
Afişaţi rezultatele şi apoi eliberaţi memoria. Folosiţi funcţiile malloc() şi free().
Generaţi numerele din tablou folosind funcţia de bibliotecă care generează numere
aleatoare şi determinaţi pentru acestea media valorilor şi Mn. Realizati aceeasi
aplicatie folosind operatorii new şi delete
Răspunsuri la întrebare
Răspuns:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
// Declararea pointerului global
float *array;
// Functie pentru citirea elementelor din tablou
void read_array(int size) {
for (int i = 0; i < size; i++) {
printf("Elementul %d: ", i+1);
scanf("%f", &array[i]);
}
}
// Functie pentru calcularea valorii medii din tablou
float mean(int size) {
float sum = 0;
for (int i = 0; i < size; i++) {
sum += array[i];
}
return sum / size;
}
// Functie pentru calcularea lui Mn
float mn(int size, int n) {
float mean_value = mean(size);
float sum = 0;
for (int i = 0; i < size; i++) {
sum += pow(array[i] - mean_value, n);
}
return sum / size;
}
int main(void) {
// Citim dimensiunea tabloului
int size;
printf("Dimensiunea tabloului: ");
scanf("%d", &size);
// Alocam memoria pentru tabloul de numere reale
array = (float *)malloc(size * sizeof(float));
if (array == NULL) {
printf("Eroare la alocarea memoriei pentru tablou.\n");
exit(1);
}
// Citim elementele din tablou
printf("Elementele din tablou:\n");
read_array(size);
// Calculam valoarea medie a elementelor din tablou
float mean_value = mean(size);
printf("Valo