Вычислить сумму положительных элементов в нечетных строках матрицы - C (СИ)

Формулировка задачи:

Доброй ночи. Помогите с программой, заранее спасибо. Вычислить F , где Sn – сумма положительных элементов в нечетных строках матрицы Y(9х12), а So – сумма отрицательных элементов в четных строках той же матрицы.

Код к задаче: «Вычислить сумму положительных элементов в нечетных строках матрицы - C (СИ)»

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 );
}

9   голосов, оценка 4.333 из 5


СОХРАНИТЬ ССЫЛКУ