#include float media_elementelor_mai_mici(int *a, int n, int m, int max) { int sum = 0, count = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (*(a + i * m + j) < max) { sum += *(a + i * m + j); count++; } } } return (float)sum / count; } void afiseaza_matrice(int *a, int n, int m) { printf("Matricea:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf("%d ", *(a + i * m + j)); } printf("\n"); } } int main() { int a[100][100]; int n, m, max = 0; printf("Introduceti numarul de linii al matricei: "); scanf("%d", &n); printf("Introduceti numarul de coloane al matricei: "); scanf("%d", &m); printf("Introduceti elementele matricei:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf("a[%d][%d] = ", i, j); scanf("%d", &a[i][j]); if (a[i][j] > max) { max = a[i][j]; } } } afiseaza_matrice((int *)a, n, m); float media = media_elementelor_mai_mici((int *)a, n, m, max); printf("Media aritmetica a elementelor mai mici ca elementul maxim: %.2f\n", media); return 0; } ``` Această versiune a codului lucrează cu un tablou bidimensional și calculează media aritmetică a elementelor mai mici decât valoarea maximă din matrice. De asemenea, afișează matricea dată.