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

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

Восстановить пароль Регистрация
 
РомаМ
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 50
16.02.2014, 21:39     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент #1
Дана вещественная прямоугольная матрица A, размером nxm. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.
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
#include <iostream>
#include <stdio.h> 
 
 
#define N 30
 
int main(void) // или вот тут нужно int main(argh и т.д.....)
{  
  int i,j, n, m; 
  int a[N][N];
  int sum,str=0; 
   
  do
    { 
       printf("Vvedite kol-vo strok (<30)\n");     scanf("%d",&n); 
       printf("Vvedite kol-vo stolbcov matrici (<30)\n");    scanf("%d",&m); 
     } 
   while (n>=30||m>=30); 
 
  for (i=0;i<n;i++){
       for (j=0;j<m;j++){ 
            printf("Vvedite element [%d,%d]\n", i+1, j+1); 
            scanf("%d",&a[i][j]); 
            
       }
  }
 printf("MATRICA: \n"); 
 for (i=0;i<n;i++){ 
       for (j=0;j<m;j++) 
       printf("%d ", a[i][j]); 
       printf("\n"); 
     } 
  
   for (i=0;i<n;i++){
       for (j=0;j<m;j++){ 
  if (a[i][j]<0) 
            
           for(i=0;i<m;i++) 
               sum=0;
               sum=sum+a[i][j];
           printf("summa elementov stolbca %d ravna %d\n",j ,sum);
           
            }
       }
        
 
 system("pause");
 return 0; 
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2014, 21:39     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент
Посмотрите здесь:

C++ Найти сумму элементов в тех столбцах,которые содержат хотя бы один отрицательный элемент
Матрицы: найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент C++
C++ Найти сумму элементов в тех строках матрицы, которые содержат хотя бы один отрицательный элемент
C++ Матрицы. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент
Дана матрица. Определить сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
16.02.2014, 21:48     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент #2
Цитата Сообщение от РомаМ Посмотреть сообщение
int main(void) // или вот тут нужно int main(argh и т.д.....)
не нужно
можно написать и
C++
1
int main()
это вторая ипостась главной функции, без параметров
Цитата Сообщение от РомаМ Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
for (i=0;i<n;i++){
for (j=0;j<m;j++){ 
 if (a[i][j]<0) 
for(i=0;i<m;i++) 
    sum=0;
    sum=sum+a[i][j];
     printf("summa elementov stolbca %d ravna %d\n",j ,sum);
}
     }
вот здесь у тебя ошибка если будет отрицательный член то i портится, введи другую переменную например k
2 sum в цикле постоянно обнуляется а суммирования не происходит,не в теле цикла не хватает скобок
РомаМ
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 50
16.02.2014, 22:09  [ТС]     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент #3
Цитата Сообщение от ValeryS Посмотреть сообщение
не нужно
можно написать и
C++
1
int main()
это вторая ипостась главной функции, без параметров
вот здесь у тебя ошибка если будет отрицательный член то i портится, введи другую переменную например k
2 sum в цикле постоянно обнуляется а суммирования не происходит,не в теле цикла не хватает скобок
зачем мне нужна еще одна переменная не совсем понял, а вот обнуляю на тот случай, если 2 столбца будет с отрицательным элементом, то начиная второй , он берет уже существующую сумму. К примеру после первого столбца осталось 5, сумма второго столбца получается больше на 5. В этом моменте я боюсь , чтобы препод не начал выделываться и не заставил меня делать матрицу с 30 столбцами с отрицательными элементами. Не могу же я ввести 30 переменных(мне почему то это кажется ооооочень не правильным).
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
16.02.2014, 22:22     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от РомаМ Посмотреть сообщение
зачем мне нужна еще одна переменная не совсем понял,
по шагам пройди и увидишь
например отрицательный лежит в ячейке 0 0
значит на первой же итерации мы заходим в if
там еще один цикл
и i менятся от нуля до m
отработали i= m
крутится второй массив
и вот тут уже засада
C++
1
if (a[m][j]<0)
выход за пределы массива
но даже если это проканает
то дальше то
нас ждет
for (i=0;i<n;i++)
сиречь for (i=0;m +1<n;i++)
цикл не выполнится
если m n равны а если не равны то разберись с индексами в третьем цикле

Добавлено через 1 минуту
Цитата Сообщение от РомаМ Посмотреть сообщение
то начиная второй , он берет уже существующую сумму.
так обнулять то нужно перед циклом а не в нем
у тебя на каждой итерации она равна 0
РомаМ
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 50
17.02.2014, 00:02  [ТС]     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент #5
Переписал немножко по другому(я не талантлив и немного глуповат), но теперь у меня считает все в подряд столбцы, а ведь нужно только те в которых есть отрицательные числа. Считает и выводит правильно, осталось только убрать ненужные столбцы=)
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
#include <iostream>
#include <stdio.h> 
 
#define N 30
 
int main(void)
{
int i,j, n, m, sum;
int a[N][N];
 
do
    { 
       printf("Vvedite kol-vo strok (<30)\n");
       scanf("%d",&n); 
       printf("Vvedite kol-vo stolbcov matrici (<30)\n");
       scanf("%d",&m); 
     } 
   while (n>=30||m>=30); 
 
   for (i=0;i<n;i++){
       for (j=0;j<m;j++){ 
            printf("Vvedite element [%d,%d]\n", i+1, j+1); 
            scanf("%d",&a[i][j]); 
            
       }
  }
    printf("MATRICA: \n"); 
 for (i=0;i<n;i++){ 
       for (j=0;j<m;j++) 
       printf("%d ", a[i][j]); 
       printf("\n"); 
     } 
        
         for (j=0;j<m;j++) 
             if (a[i][j]<0){
             sum=0;
             for (i=0;i<n;i++)
             sum+=a[i][j];
             printf ("Summa eleventov v %d stolbce ravna %d\n",j+1, sum);
         }
            
system("pause");
return 0; 
}
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
17.02.2014, 00:23     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент #6
вот твой кусок как должен выглядеть
C
1
2
3
4
5
6
7
8
9
10
11
12
13
for(i=0;i<n;i++)
 {
   for(j=0; j<m;j++)
    {
       if(a[i][j]<0)
        {
          sum =0;
            for(k=0;k<n;k++)
              sum+=a[k][j];
          printf ("Summa eleventov v %d stolbce ravna %d\n",j+1, sum);
        }
    }
 }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 00:34     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
РомаМ
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 50
17.02.2014, 00:34  [ТС]     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент #7
Цитата Сообщение от ValeryS Посмотреть сообщение
вот твой кусок как должен выглядеть
спасибо огромное, извиняюсь за надоедливость и остальное =))
Yandex
Объявления
17.02.2014, 00:34     Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент
Ответ Создать тему
Опции темы

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