Форум программистов, компьютерный форум CyberForum.ru

Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент - C++

Восстановить пароль Регистрация
 
F. Alonso
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 117
18.05.2012, 21:01     Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент #1
Привет! Помогите, пожалуйста, изменить код.Он рабочий,но у него есть недостаток, он без функций, а надо в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.

Задание:Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик.
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.

Код
#include <iostream>
#include <time.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
        int a[6][5];
        int temp[6];
        int i, j;
 
        srand(time(NULL));
 
        cout << "Ishodniy massiv" << endl;
 
       for(i=0; i<5; i++)
        {
    for(j=0; j<5; j++)
  {
     a[i][j] = rand()%100-50;
     cout << a[i][j] << "\t";
   }
     cout << endl << endl;
   }
     for(j=0; j<5; j++)
  {
    a[5][j] = 0;
    for(i=0; i<5; i++)
       {
   if ((a[i][j]<0) && (a[i][j]%2!=0))
   a[5][j] += abs(a[i][j]);
    }
   }
        int min=0;
        for(i=0; i<4; i++)
    {
      min = i;
   for(j=i+1; j<5; j++)
   {
   if (a[5][j]<a[5][min])
    {
    min = j;
     }
  }
  temp[0] = a[0][min];
   temp[1] = a[1][min];
temp[2] = a[2][min];
temp[3] = a[3][min];
temp[4] = a[4][min];
temp[5] = a[5][min];
a[0][min] = a[0][i];
a[1][min] = a[1][i];
a[2][min] = a[2][i];
a[3][min] = a[3][i];
a[4][min] = a[4][i];
a[5][min] = a[5][i];
a[0][i] = temp[0];
a[1][i] = temp[1];
a[2][i] = temp[2];
a[3][i] = temp[3];
a[4][i] = temp[4];
a[5][i] = temp[5];
}
cout << endl << "Otsortirovanniy massiv" << endl;
  for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
cout << a[i][j] << "\t";
  }
  cout << endl << endl;
  }
  for(i=0; i<5; i++)
    cout << "---\t";
  cout << endl;
for(i=0; i<5; i++)
  cout << a[5][i] << "\t";
  cout << " - harakteristiki stolbcov" << endl << endl;
int n, sum;
    for(j=0; j<5; j++) 
  {
    for(i=0; i<5; i++) 
   {
   if (a[i][j]<0) 
  {
   sum = 0;
for(n=0; n<5; n++) 
 {
  sum += a[n][j];
   }
     cout << "summa elementov stolbca [" << j+1 << "] = " << sum << endl;
   break;
   }
  }
}
 getch();
return 0;
}
и еще, если не затруднит)
преподавателю не понравилась перестановка столбцов матрицы, нужно как-то логически, но как именно это организовать до меня не доходит

Код
temp[0] = a[0][min];
temp[1] = a[1][min];
temp[2] = a[2][min];
temp[3] = a[3][min];
temp[4] = a[4][min];
temp[5] = a[5][min];
a[0][min] = a[0][i];
a[1][min] = a[1][i];
a[2][min] = a[2][i];
a[3][min] = a[3][i];
a[4][min] = a[4][i];
a[5][min] = a[5][i];
a[0][i] = temp[0];
a[1][i] = temp[1];
a[2][i] = temp[2];
a[3][i] = temp[3];
a[4][i] = temp[4];
a[5][i] = temp[5];
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2012, 21:01     Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент
Посмотрите здесь:

C++ Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент
C++ найти сумму элементов в тех строках,которые содержат хотя бы один отрицательный элемент
C++ Найти сумму элементов в тех столбцах,которые содержат хотя бы один отрицательный элемент
C++ Найти сумму элементов в тех строках которые, содержат хотя бы один отрицательный элемент
Матрицы: найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент C++
Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент C++
Дана матрица. Определить сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru