Informatică, întrebare adresată de vovatodirean, 8 ani în urmă

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 de Apollyon
0

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;

}

Alte întrebări interesante