Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 2
Регистрация: 08.07.2013
Сообщений: 57
1

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

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

Author24 — интернет-сервис помощи студентам
Дана вещественная прямоугольная матрица 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2014, 21:39
Ответы с готовыми решениями:

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

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

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

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

6
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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 / 2
Регистрация: 08.07.2013
Сообщений: 57
16.02.2014, 22:09  [ТС] 3
Цитата Сообщение от ValeryS Посмотреть сообщение
не нужно
можно написать и
C++
1
int main()
это вторая ипостась главной функции, без параметров
вот здесь у тебя ошибка если будет отрицательный член то i портится, введи другую переменную например k
2 sum в цикле постоянно обнуляется а суммирования не происходит,не в теле цикла не хватает скобок
зачем мне нужна еще одна переменная не совсем понял, а вот обнуляю на тот случай, если 2 столбца будет с отрицательным элементом, то начиная второй , он берет уже существующую сумму. К примеру после первого столбца осталось 5, сумма второго столбца получается больше на 5. В этом моменте я боюсь , чтобы препод не начал выделываться и не заставил меня делать матрицу с 30 столбцами с отрицательными элементами. Не могу же я ввести 30 переменных(мне почему то это кажется ооооочень не правильным).
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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 / 2
Регистрация: 08.07.2013
Сообщений: 57
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
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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 / 2
Регистрация: 08.07.2013
Сообщений: 57
17.02.2014, 00:34  [ТС] 7
Цитата Сообщение от ValeryS Посмотреть сообщение
вот твой кусок как должен выглядеть
спасибо огромное, извиняюсь за надоедливость и остальное =))
0
17.02.2014, 00:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2014, 00:34
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru