1. Создайте подпрограммы на языке Си для выполнения следующих задач:
- Сформируйте матрицу а размером (nхn).
- Выведите на экран значения матрицы, разместив каждую строку матрицы на отдельной строке экрана.
- Найдите количество нулей на побочной диагонали матрицы.
- Посчитайте средние арифметические значения положительных и отрицательных элементов матрицы отдельно, используя одну функцию.
Напишите функцию main, которая вызывает разработанные вами функции.
- Сформируйте матрицу а размером (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;
}
Эта программа сначала запрашивает у пользователя ввод элементов матрицы и заполняет ею массив. Затем она выводит матрицу на экран. После этого программа находит количество нулей на побочной диагонали матрицы и выводит результат. Затем она вычисляет среднее арифметическое положительных и отрицательных элементов матрицы, используя одну функцию, и выводит результаты на экран.
Надеюсь, это решение понятно и полезно для школьника! Если есть еще вопросы, не стесняйтесь задавать.
Знаешь ответ?