Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
РомаМ
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 56
#1

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

16.02.2014, 21:39. Просмотров 786. Ответов 6
Метки нет (Все метки)

Дана вещественная прямоугольная матрица 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; 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2014, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент (C++):

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

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

Определить сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент - C++
Для целочисленного двумерного массива ( массивность массива задается пользователем), разработать функцию, которая определяет сумму...

Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент - C++
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент. #include &quot;stdafx.h&quot; #include &lt;iostream.h&gt;...

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

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

6
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,344
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 в цикле постоянно обнуляется а суммирования не происходит,не в теле цикла не хватает скобок
1
РомаМ
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 56
16.02.2014, 22:09  [ТС] #3
Цитата Сообщение от ValeryS Посмотреть сообщение
не нужно
можно написать и
C++
1
int main()
это вторая ипостась главной функции, без параметров
вот здесь у тебя ошибка если будет отрицательный член то i портится, введи другую переменную например k
2 sum в цикле постоянно обнуляется а суммирования не происходит,не в теле цикла не хватает скобок
зачем мне нужна еще одна переменная не совсем понял, а вот обнуляю на тот случай, если 2 столбца будет с отрицательным элементом, то начиная второй , он берет уже существующую сумму. К примеру после первого столбца осталось 5, сумма второго столбца получается больше на 5. В этом моменте я боюсь , чтобы препод не начал выделываться и не заставил меня делать матрицу с 30 столбцами с отрицательными элементами. Не могу же я ввести 30 переменных(мне почему то это кажется ооооочень не правильным).
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,344
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
1
РомаМ
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 56
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; 
}
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,344
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);
        }
    }
 }
1
РомаМ
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 56
17.02.2014, 00:34  [ТС] #7
Цитата Сообщение от ValeryS Посмотреть сообщение
вот твой кусок как должен выглядеть
спасибо огромное, извиняюсь за надоедливость и остальное =))
0
17.02.2014, 00:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 00:34
Привет! Вот еще темы с ответами:

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

Найти сумму элементов в тех строках матрицы, которые содержат хотя бы один отрицательный элемент - C++
#include &quot;stdafx.h&quot; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; using...

Найти сумму элементов матрицы в тех строках, которые содержат хотя бы один отрицательный элемент - C++
Вариант 7 Задание 1 Для заданной матрицы размером 8 на 8 найти такие k, что k-ая строка матрицы совпадает с k-ым столбцом Найти сумму...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.