Вычислить сумму положительных элементов в нечетных строках матрицы - 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, которая вычисляет сумму положительных элементов в нечетных строках матрицы, а также сумму отрицательных элементов в четных строках матрицы. Список действий:

  1. В функции fill происходит заполнение матрицы случайными числами от -99 до +99.
  2. В функции display происходит вывод содержимого матрицы на экран.
  3. В функции get_sum_of_positive_elements_in_odd_lines происходит обход каждого элемента в нечетных строках матрицы и суммирование положительных чисел.
  4. В функции get_sum_of_negative_elements_in_even_lines происходит обход каждого элемента в четных строках матрицы и суммирование отрицательных чисел.
  5. В функции get_F_value происходит вычисление значения F по формуле (a + b) / (a - b), где a и b - суммы положительных и отрицательных элементов соответственно.
  6. В функции main происходит инициализация матрицы, заполнение ее случайными числами, вывод содержимого матрицы на экран, вычисление суммы положительных и отрицательных элементов, проверка на равенство этих сумм и вывод значения F. Пожалуйста, обратите внимание, что в данном коде не учитывается возможность деления на ноль, что может привести к неопределенному поведению программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы