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

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

Войти
Регистрация
Восстановить пароль
 
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
#1

Сформировать массив из произведений положительных элементов соответствующих столбцов матрицы - C++

11.12.2009, 18:36. Просмотров 797. Ответов 11
Метки нет (Все метки)

Дан целочисленный массив А[N][М]. Сформировать одномерный массив В[М] из произведений положительных элементов соответствующих столбцов массива А.

Чего-то поковырял, туда тыкнулся, тыкнулся в другую сторону - где-то что-то пропустил

Черновик:
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
#include <iostream>
#include <conio.h>
#define SIZE 255
using namespace std;
int main (void)
{
int i,j,temp=1;
double A[SIZE][SIZE], B[SIZE];
  cout<<"Matrica: "<<endl;
  cout<<endl;
    for (i=0;i<3;i++)
    {
      for (j=0;j<5;j++)
      {
        cin>>A[i][j];
         if (A[i][j]>0)
          B[j]*=A[i][j];
      }
    }
    for (i=0;i<1;i++)
    {
      for (j=0;j<5;j++)
      cout<<B[i]<<" ";
      cout<<endl;
    }
          getch();
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2009, 18:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать массив из произведений положительных элементов соответствующих столбцов матрицы (C++):

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

Сформировать вектор d из крупнейших отрицательных элементов соответствующих столбцов матрицы - C++
Сформировать вектор d из крупнейших отрицательных элементов соответствующих столбцов матрицы s .

Сформировать одномерный массив, состоящий из произведений отрицательных элементов четных строк матрицы - C++
Помогите, я сделала программу на делфи - работает, переделала на си не работает, помогите что бы выводилось.. ЗАДАНИЕ: Сформировать...

Сформировать массив, элементами которого являются суммы элементов соответствующих строк матрицы - C++
Задана целая прямоугольная матрица. Сформировать одномерный массив, элементами которого являются суммы элементов соответствующих строк...

Сформировать одномерный массив X из максимальных элементов столбцов матрицы A - C++
Сформировать одномерный массив X из максимальных элементов столбцов матрицы A. В массиве X поменять первый отрицательный и последний...

Сформировать массив из максимальных элементов столбцов заданной матрицы - C++
Задана матрица целых чисел . Сформировать массив из максимальных элементов столбцов заданной матрицы. help

11
MoNiFeST
1 / 1 / 1
Регистрация: 09.12.2009
Сообщений: 21
11.12.2009, 19:11 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <conio.h>
#define SIZE 255
using namespace std;
int main (void)
{
int i,j,Fl=0,n,m,t=0;
double A[SIZE][SIZE], B[SIZE];
  cout<<"Vvedite kolichestvo strok: ";
cin>>n;
 cout<<"Vvedite kolichestvo stolbzov: ";
cin>>m;
 
    for (i=0;i<n;i++)
          for (j=0;j<m;j++)
      {
cout<<"A["<<i<<"]["<<j<<"]=";
        cin>>A[i][j];
     }
    for (j=0;j<m;j++)
{B[j]=1;
Fl=0;
         for (i=0;i<n;i++)
if(A[i][j]>0)
{B[j]*=A[i][j];
Fl=1;
}
if(Fl==0)
B[j]=0;
}
 
    for (i=0;i<m;i++)
    {
      cout<<"B["<<j<<"]="<<B[j]<<"\n";
    }
          getch();
 
 
}
0
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
11.12.2009, 19:13 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <stdlib.h>
#define size 255
using namespace std;
int main ()
{
    double A[size][size], B[size];
    cout<<"Matrica A:"<<endl;
    
    for(int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            if (j%2==0)
            {
                A[i][j]=(-1)*(random() % 100);
            }
            else A[i][j]=random() % 100;
            cout << A[i][j] << " ";
        }
    cout << endl;
    }
    cout << "Matrica B: ";
    for(int i = 0; i < size; i++)
    {
        B[i] = 0;
        for(int j = 0; j < size; j++)
        {
            if(A[i][j] > 0)
            B[i] *= A[i][j];
        }
        cout << B[i] << " ";
        cout <<endl;
    }
    
 
 
}
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
11.12.2009, 19:14  [ТС] #4
MoNiFeST, Не работает. Нули выводит.

Добавлено через 1 минуту
breeve, еще лучше. Бесконечный цикл - это здорово.
Кстати, люди, юзайте теги кода
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.12.2009, 19:14 #5
Кривоват код. Ну да ладно, в строке 17 Вашего кода:
C++
1
 B[j]*=A[i][j];
Что-бы были правильные значения, до строки 11 Вашего кода, нужно весь массив B[] заполнить единицами.
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
11.12.2009, 19:17  [ТС] #6
valeriikozlov, Я ясно понимаю, что код кривоват. Поэтому и прошу внести поправки.
Пробовал даже через банальную инициализацию заполнять единичками - не то.
0
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
11.12.2009, 19:26 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <stdlib.h>
#define size 10
using namespace std;
int main ()
{
    double A[size][size], B[size];
    cout<<"Matrica A:"<<endl;
    
    for(int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            if (j%2==0)
            {
                A[i][j]=(-1)*(random() % 100);
            }
            else A[i][j]=random() % 100;
            cout << A[i][j] << " ";
        }
    cout << endl;
    }
    cout << "Matrica B: ";
    for(int i = 0; i < size; i++)
    {
        B[i] = 1;
        for(int j = 0; j < size; j++)
        {
            if(A[i][j] > 0)
            B[i] = B[i] * A[i][j];
        }
        cout << B[i] << " ";
        cout <<endl;
    }
    
 
 
}
я поставил значений поменьше..)) и все четко..
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.12.2009, 19:30 #8
Darky, Специально попробовал, заполнил B[], c 0 по 4 индекс единицами. Выводит нужный результат.
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
11.12.2009, 19:37  [ТС] #9
valeriikozlov, Может мы друг друга не так поняли?
Что
C++
1
2
3
4
5
B[0]=1;
B[1]=1;
B[2]=1;
B[3]=1;
B[4]=1;
Что
C++
1
int B[SIZE]={1,1,1,1,1}
Все равно выводит единички в конце.

breeve,
Результаты не те. Я так понимаю, это для строки? Тогда будет несложно исправить
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.12.2009, 19:54 #10
Только сейчас заметил: строка 23:
C++
1
      cout<<B[i]<<" ";
Замени на
C++
1
      cout<<B[j]<<" ";
Но единицами все равно заполните массив B[].
1
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
11.12.2009, 20:00  [ТС] #11
valeriikozlov, Спасибо!
Выходит, мой черновик не был уж так плох, я думал, полностью придется перелопатить.
Всем остальным спасибо хотя бы за то, что уделили время моей задаче
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.12.2009, 20:04 #12
Darky, Вот эту часть я бы тоже заменил:
C++
1
2
3
4
5
6
for (i=0;i<1;i++)
    {
      for (j=0;j<5;j++)
      cout<<B[i]<<" ";
      cout<<endl;
    }
на
C++
1
2
3
for (j=0;j<5;j++)
      cout<<B[i]<<" ";
      cout<<endl;
Вы же все равно там всего один проход делаете
0
11.12.2009, 20:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2009, 20:04
Привет! Вот еще темы с ответами:

Сформировать массив сумм элементов столбцов матрицы (где ошибка?) - C++
матрицу выводи правильно,но при подсчете суммы выдает ошибку, если использовать не равные значения строк и столбцов. Подскажите, как это...

Сформировать одномерный массив, состоящий из максимальных элементов четных столбцов матрицы - C++
Дана целочисленная матрица 10x12. Найти сумму элементов в заштрихованной области. Сформировать одномерный массив, состоящий из максимальных...

Сформировать массив из положительных элементов матрицы, расположенных выше главной диагонали - C++
Дана матрица А(n*m). Сформировать одномерный массив из положительных элементов этой матрицы, расположенных выше главной диагонали

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


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

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

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