Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2015, 22:26   #1
karisha98
Пользователь
 
Регистрация: 18.10.2015
Сообщений: 10
По умолчанию Из каждого элемента матрицы вычесть сумму ее нечетных положительных элементов. С

язык рограммирования С
Задание Из каждого элемента матрицы вычесть сумму ее нечетных положительных элементов

Вот у меня есть код, как для четных.. Кто сможет исправить?
Код:
#include <stdio.h>
 
#define N 3
 
void fill_matrix(int matrix[][N])
{
   int i,j;
   for (i=0; i<N; ++i)
      for (j=0; j<N; ++j) {
         printf("matrix[%i][%i] = ", i, j);
         scanf("%i%*c", &matrix[i][j]);
      }
}
 
void print_matrix(int matrix[][N])
{
   int i,j;
   printf("\n");
   for (i=0; i<N; ++i) {
      for (j=0; j<N; ++j)
         printf("%3i ", matrix[i][j]);
      printf("\n");
   }
}
 
int get_sum(int matrix[][N])
{
   int result = 0;
   int i,j;
   
   for (i=0; i<N; ++i)
      for (j=0; j<N; ++j)
         if (matrix[i][j]>0 && !(matrix[i][j]%2))
            result += matrix[i][j];
 
   return result;
}
 
void minus_sum(int matrix[][N], int sum)
{
   int i,j;
 
   for (i=0; i<N; ++i)
      for (j=0; j<N; ++j)
         matrix[i][j] -= sum;
}
 
int main(void)
{
   int matrix[N][N];
   int sum;
 
   fill_matrix(matrix);
   print_matrix(matrix);
   sum = get_sum(matrix);
   minus_sum(matrix, sum);
   print_matrix(matrix);
 
   return 0;
}

Последний раз редактировалось Stilet; 18.11.2015 в 09:55.
karisha98 вне форума Ответить с цитированием
Старый 18.11.2015, 01:33   #2
avia
 
Регистрация: 04.12.2009
Сообщений: 2
По умолчанию

Нужно только условие подсчета суммы поменять тут:
Код:
int get_sum(int matrix[][N])
{
int result = 0;
int i,j;

for (i=0; i<N; ++i)
for (j=0; j<N; ++j)
if (matrix[i][j]>0 && !(matrix[i][j]%2))
result += matrix[i][j];

return result;
}
if (matrix[i][j]>0 && !(matrix[i][j]%2)) - "если элемент положительный и остаток от деления на 2 не равен нулю"

Надо просто убрать !
if (matrix[i][j]>0 && matrix[i][j]%2) теперь суммироваться будут все положительные нечетные
avia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для каждого столбца подсчитать сумму четных положительных элементов и записать данные в новый массив. Promi C# (си шарп) 5 27.10.2015 19:06
Найти сумму элементов каждого столбца матрицы FYNZIK Паскаль, Turbo Pascal, PascalABC.NET 3 24.02.2014 19:34
Задача на матрицу C++. Дана квадратная матрица. сравнить сумму элементов каждого i-го столбца матрицы с суммой i-й строки malikon Помощь студентам 2 24.01.2014 14:52
Найти сумму наибольших элементов каждого столбца матрицы и их координаты. danteone Помощь студентам 2 21.05.2012 16:33
Найти максимальный из положительных элементов матрицы и сумму отрицательных элементов. bessonov12 Microsoft Office Excel 7 04.05.2009 05:44