1. Создайте подпрограммы на языке Си для выполнения следующих задач: - Сформируйте матрицу а размером (nхn). - Выведите

1. Создайте подпрограммы на языке Си для выполнения следующих задач:
- Сформируйте матрицу а размером (nхn).
- Выведите на экран значения матрицы, разместив каждую строку матрицы на отдельной строке экрана.
- Найдите количество нулей на побочной диагонали матрицы.
- Посчитайте средние арифметические значения положительных и отрицательных элементов матрицы отдельно, используя одну функцию.
Напишите функцию main, которая вызывает разработанные вами функции.
Полосатик

Полосатик

Давайте разобьем задачу на несколько подзадач и напишем программу на языке Си, которая их последовательно выполняет.

Вот решение:

c
#include

#define N 3 // размерность матрицы

// Функция для формирования матрицы a размером (nхn)
void formMatrix(int matrix[N][N]) {
printf("Введите элементы матрицы:\n");

for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &matrix[i][j]);
}
}
}

// Функция для вывода матрицы на экран
void printMatrix(int matrix[N][N]) {
printf("Матрица:\n");

for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%3d ", matrix[i][j]);
}
printf("\n");
}
}

// Функция для нахождения количества нулей на побочной диагонали матрицы
int countZeros(int matrix[N][N]) {
int count = 0;

for (int i = 0; i < N; i++) {
if (matrix[i][N - 1 - i] == 0) {
count++;
}
}

return count;
}

// Функция для вычисления среднего арифметического значений положительных и отрицательных элементов матрицы
void calcAverages(int matrix[N][N], float *positiveAverage, float *negativeAverage) {
int positiveSum = 0;
int negativeSum = 0;
int positiveCount = 0;
int negativeCount = 0;

for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (matrix[i][j] > 0) {
positiveSum += matrix[i][j];
positiveCount++;
} else if (matrix[i][j] < 0) {
negativeSum += matrix[i][j];
negativeCount++;
}
}
}

*positiveAverage = (float) positiveSum / positiveCount;
*negativeAverage = (float) negativeSum / negativeCount;
}

int main() {
int matrix[N][N];

formMatrix(matrix);
printf("\n");

printMatrix(matrix);
printf("\n");

int zeros = countZeros(matrix);
printf("Количество нулей на побочной диагонали: %d\n", zeros);

float positiveAverage, negativeAverage;
calcAverages(matrix, &positiveAverage, &negativeAverage);
printf("Среднее арифметическое положительных элементов: %.2f\n", positiveAverage);
printf("Среднее арифметическое отрицательных элементов: %.2f\n", negativeAverage);

return 0;
}


Эта программа сначала запрашивает у пользователя ввод элементов матрицы и заполняет ею массив. Затем она выводит матрицу на экран. После этого программа находит количество нулей на побочной диагонали матрицы и выводит результат. Затем она вычисляет среднее арифметическое положительных и отрицательных элементов матрицы, используя одну функцию, и выводит результаты на экран.

Надеюсь, это решение понятно и полезно для школьника! Если есть еще вопросы, не стесняйтесь задавать.
Знаешь ответ?
Задать вопрос
Привет!
hello