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

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


textual

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

#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



Похожие ответы
  1. Найти сумму компонент вектора X, удовлетворяющих условию 2

  1. Всем привет, помогите пожалуйста решить задачу Задание: Написать программу для расчета по двум формулам. Результат вычисления по первой формуле должен совпадать со второй. Использовать операции потокового ввода-вывода.

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

  1. Я написала программу с двумя элементами ввода массивов, но результат выводит не неверный и после выбора ручного ввода программа вылетает. Помогите пожалуйстаC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 #include #include #include #include #include #include #define N 500 #define MIN 80 int main(void) { setlocale (0, "rus"); int a[N],n,i, min=a[0], nummin=0, sum=0, nol=0, k; srand((unsigned)time(NULL)); printf ( " Определите характер заполнения: 1- автоматическое, 2- вручную"); printf("\n"); scanf("%d",&k);   switch(k) { case 1: { printf("vvedite n - "); scanf("%d",&n); for (i=0; ia[i])           {               printf("\n");               min=a[i];              nummin=i;}         for (i=nummin+1; i

  1. Помогите пожалуйста. Использовать стандартные функции и арифметические операторы; изучить операторы отношения и присваивания, логические операции, условный оператор и оператор-переключатель; научиться использовать в программах операторы цикла. Написать программы на изученные темы. Для заданного x вычислить значение функции y=ctg x , где x (0, 2 )

  1. Не понимаю как работать с строками... У меня есть задача... Во входной строке записаны целые числа через запятую. Найдите их сумму. ВХОДНЫЕ ДАННЫЕ Программа получает на вход строку, содержащую цифры, знаки +/- и запятые. Необходимо разбить эту строку по запятым на числа и вычислить их сумму. Длина строки не превосходит 1000 символов. Строка содержит хотя бы одно число, начинается и заканчивается не с запятой, никакие две запятые не идут подряд. Между двумя соседними запятыми записано корректное целое число, не превосходящее по модулю 106106, которое может начинаться со знака "+" или "-".Ввод: 12,-5,+8 Вывод: 15 Получилось только так... но это неправильно (условие задачи совсем другое) C++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include #include   using namespace std;   int main(){     string str;     int sum = 0;     cin >> str;     cout << endl;     for(int i = 0; i < str.length(); i++){         if (str[i] == ',')         {             i++;         }         sum += (int)str[i] - 48;     }     cout << sum << endl;       return 0;     }

  1. Написать программу для подсчета суммы мест, на которых в словах текста стоит заданная буква.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include #include int j, sum,a; char s, c; main() {     printf("Vvedite text", s);     scanf("%d", &s);     printf("vvedite bukvu iz texta", c);     scanf("%d", &c);     sum=0;     printf("mesta na kotorix v slovax stoit eta bukva:");     for(j=1; a=strlen(s);)     {         if(s[j]=c)         sum=sum+j;     printf(j,"");     }   printf(""); printf("summa mest na kotorix stoit eta bukva=", sum); }

  1. Все Работает если вводить без пробелов, но с пробелом выводится только первое число, (если можно с кратким объяснением пожалуйста)C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include #include     int main(){       char str[100];     int x = 0;     scanf("%s", str);     for(int i = 0;i < strlen(str);i++)     {         if((str[i] >= '1') && (str[i] <= '9'))         {             x += ((int)str[i] - 48);                     }     }     printf("%d", x);       return 0; }

  1. создать функцию, которая считает сумму элементов стека

  1. по идее программа должна вычислять сумму всех положительных элементов квадратной матрицыC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include #include  main () {int n=3,m=3,a[3][3],i,j,z; z=0; for(i=n;i0) z+=a[i][j]; printf("z=%d\n",&z);} system("pause"); return(0); }