Programarea şi utilizarea pointerilor:
Ne este dată matrice C [n][m] de numere întregi, n,m<=100. Să se alcătuiască un program
care calculează media aritmetică a elementelor de pe primul rînd şi ultima coloană,
utilizînd pointerii.
IN LIMBAJUL C!!! VA ROG FRUMOS!!!
Răspunsuri la întrebare
Răspuns:
#include <stdio.h>
// aici dacă vrei dimensiunile le poți citi de la tastatură în main( )
#define numar_coloane 3
#define numar_linii 3
static int calculeaza_media(int matrice[numar_linii][numar_coloane]) {
int contor_numere = 0, suma_numere = 0, *numar_curent;
// adunăm prima dată elementele de pe prima linie (matrice[0][0], matrice[0][1], matrice[0][2] ș.a.m.d.)
for (int i = 0; i < numar_coloane; ++i) {
// ne folosim de un pointer în care salvăm numărul pe care-l adunăm la o sumă (nu e nevoie dar văd în enunț că cere utilizarea pointerilor)
numar_curent = &matrice[0][i];
// adăugăm valoarea de la adresa respectivă la sumă
suma_numere += *numar_curent;
// și creștem contorul de numere
++contor_numere;
}
// după adunăm numerele de pe ultima coloană (matrice[număr coloane - 1][0] după matrice[număr coloane - 1][1] ș.a.m.d.)
for (int i = 0; i < numar_linii; ++i) {
numar_curent = &matrice[i][numar_coloane - 1];
suma_numere += *numar_curent;
++contor_numere;
}
// la final calculăm media aritmetică și o returnăm
return suma_numere / contor_numere;
}
int main() {
// la fel și matricea, o poți aloca dinamic și poți să citești valorile de la tastatură
int C[numar_linii][numar_coloane] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int media_aritmetica = calculeaza_media(C);
printf("Media aritmetica este >> \"%d\"\n", media_aritmetica);
return 0;
}