Вычислить сумму положительных элементов в нечетных строках матрицы - C (СИ)
Формулировка задачи:
Доброй ночи.
Помогите с программой, заранее спасибо.
Вычислить F , где Sn – сумма положительных элементов в нечетных строках матрицы Y(9х12), а So – сумма отрицательных элементов в четных строках той же матрицы.
Решение задачи: «Вычислить сумму положительных элементов в нечетных строках матрицы»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define ROWS 9 #define COLUMNS 12 void fill( int [][ COLUMNS ] ); void display( int [][ COLUMNS ] ); int get_sum_of_positive_elements_in_odd_lines( int [][ COLUMNS ] ); int get_sum_of_negative_elements_in_even_lines( int [][ COLUMNS ] ); double get_F_value( int, int ); int main(int argc, char *argv[]) { srand( time ( NULL) ); int matrix_Y[ ROWS ][ COLUMNS ]; fill( matrix_Y ); display( matrix_Y ); int Sn = get_sum_of_positive_elements_in_odd_lines( matrix_Y ); int So = get_sum_of_negative_elements_in_even_lines( matrix_Y ); if ( Sn != So ) { double F_value = get_F_value( Sn, So ); printf( "\nF = %f\n", F_value ); } else { printf( "\nF не определено. Знаменатель в выражении для F равен нулю.\n" ); } return 0; } void fill( int array[][ COLUMNS ] ) { int i, j; for ( i = 0; i < ROWS; i++ ) { for ( j = 0; j < COLUMNS; j++ ) { array[ i ][ j ] = rand() % 198 - 99; // Диапазон чисел от -99 до +99. } } } void display( int array[][ COLUMNS ] ) { printf( "\nИсходный массив:\n" ); int i, j; for ( i = 0; i < ROWS; i++ ) { for ( j = 0; j < COLUMNS; j++ ) { printf( "%5d", array[ i ][ j ] ); } printf( "\n" ); } } int get_sum_of_positive_elements_in_odd_lines( int array[][ COLUMNS ] ) { int i, j; int sum = 0; for ( i = 1; i < ROWS; i += 2 ) { for ( j = 0; j < COLUMNS; j++ ) { if ( 0 < array[ i ][ j ] ) { sum += array[ i ][ j ]; } } } return sum; } int get_sum_of_negative_elements_in_even_lines( int array[][ COLUMNS ] ) { int i, j; int sum = 0; for ( i = 0; i < ROWS; i += 2 ) { for ( j = 0; j < COLUMNS; j++ ) { if ( array[ i ][ j ] < 0 ) { sum += array[ i ][ j ]; } } } return sum; } double get_F_value( int a, int b ) { return (double) ( a + b ) / ( a - b ); }
Объяснение кода листинга программы
Код представляет собой программу на языке C, которая вычисляет сумму положительных элементов в нечетных строках матрицы, а также сумму отрицательных элементов в четных строках матрицы. Список действий:
- В функции
fill
происходит заполнение матрицы случайными числами от -99 до +99. - В функции
display
происходит вывод содержимого матрицы на экран. - В функции
get_sum_of_positive_elements_in_odd_lines
происходит обход каждого элемента в нечетных строках матрицы и суммирование положительных чисел. - В функции
get_sum_of_negative_elements_in_even_lines
происходит обход каждого элемента в четных строках матрицы и суммирование отрицательных чисел. - В функции
get_F_value
происходит вычисление значения F по формуле (a + b) / (a - b), где a и b - суммы положительных и отрицательных элементов соответственно. - В функции
main
происходит инициализация матрицы, заполнение ее случайными числами, вывод содержимого матрицы на экран, вычисление суммы положительных и отрицательных элементов, проверка на равенство этих сумм и вывод значения F. Пожалуйста, обратите внимание, что в данном коде не учитывается возможность деления на ноль, что может привести к неопределенному поведению программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д