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

Определить номер столбца матрицы с минимальным количеством отрицательных элементов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Идея такова соеденения микросхем и программы http://www.cyberforum.ru/cpp-beginners/thread820582.html
Давно мучает такая идея: Есть микросхема с чипом который сообщает температуру. Как её соединить с ПК и с программой на c++ где взять эту микросхему, как её соединить с пк, как вобще это всё можно реализовать? где вобще можно найти литературу по этому поводу?
C++ Cтрока: Найти общее количество символов «+» и «*» 1. Дан текст. Найти общее количество символов «+» и «*»? Найти их порядковые номера. http://www.cyberforum.ru/cpp-beginners/thread820571.html
матрица с меню C++
Написать программу, включающую следующие процедуры: 1. Создать матрицу С(8х8) случайных чисел в диапазоне от –50 до +50. 2. Напечатать матрицу. 3. Поменять местами элементы главной и побочной диагоналей Процедура печати должна позволять просматривать как исходную, так и получившуюся матрицу.
C++ сортировка матрицы
Дана действительная матрица (nxm),m10. В каждом столбце матрицы сделать следующие изменения: каждый положительный элемент заменить суммой предшествующих ему в этом столбце положительных элементов и подсчитать число таких замен. Упорядочить (переставить) столбцы матрицы по неубыванию числа замен в столбце.
C++ Подпрограммы. Найти сумму элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread820562.html
Даны две целые квадратные матрицы С и Т порядка n. Найти а- сумму элементов матрицы Т, лежащих на и выше главной диагонали, и b- сумму аналогичных элементов матрицы С. Если а>b, определить H=T-a*b*C , иначе F=C+a*T.
C++ Исключения Ребят, тут такая тема. В общем нужно при вводе данных смотреть на исключения, т.е. если ввели в int буквы - пробросить исключение. С этим я справился. Но препод еще наказал проверять на переполнение. То бишь если в тот же int мы ввели число большее 2147483647 - пробрасывать. Но проблема в том что ввод большего вызывает флаг failbit и проконтролировать эти ситуации отдельно друг от друга никак не... подробнее

Показать сообщение отдельно
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
27.03.2013, 22:59     Определить номер столбца матрицы с минимальным количеством отрицательных элементов
C++
1
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
using namespace std;
 
class matrix
{
      int n;//количество строк
      int m;//количество столбцов
      int **a;//сама матрица
      public:
             matrix(int n,int m):n(n),m(m)//конструктор
             {
                a = new int*[n];
                for ( int i = 0; i < n; ++i )
                      a[i] = new int[m];
             }
             ~matrix()//деструктор
             {
                      for ( int i = 0; i < n; ++i )
                          delete [] a[i];
                      delete [] a;
             }
 
             //функция заполняет матрицу чем попало
             void random(){
                  for(int i=0;i<n;i++)
                          for(int j=0;j<m;j++)
                                  a[i][j]=rand()%19 - 9;
             }
             
             //печатает матрицу
             void print(){
                  for(int i=0;i<n;i++){
                          for(int j=0;j<m;j++){
                                  cout<<a[i][j]<<'\t';
                          }
                          cout<<'\n';
                  }
                  cout<<'\n';
             }
             
             void task()//выполняет задание
             {
                  int min=find_min();
                  for(int j=0;j<m;j++)
                  {
                          if(j==min){continue;}//если нужно и к минимальному столбцу прибавить самого себя, то закомментируй это
                          for(int i=0;i<n;i++)
                          {
                                  a[i][j]+=a[i][min];
                          }
                  }
             }
      private:
             int find_min()//находит и возвращает "минимальный" столбец (его номер возвращает)
             {
                 int min_k=0;
                 int min=0;
                 int k=0;
                 for(int j=0;j<m;j++)
                 {
                         k=0;
                         for(int i=0;i<n;i++)
                         {
                                 if(a[i][j]<0) k++;
                         }
                         if(k>min_k){min=j;min_k=k;}
                 }
                 return min;
             }
};
 
int main () 
{
     matrix a(3,5);
     a.random();
     a.print();
     
     a.task();
     
     a.print();
     cin.get();
}
 
Текущее время: 16:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru