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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Vanessa
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 14
#1

Найти номер ее столбца с наименьшим произведением элементов - C++

17.03.2010, 17:11. Просмотров 1298. Ответов 8
Метки нет (Все метки)

Помогите пожалуйста с исходным кодом, как решить на языке программирования С++...
Matrix26. Дана матрица размера M × N. Найти номер ее столбца с наименьшим произведением элементов и вывести данный номер, а также значение наи-меньшего произведения.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2010, 17:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти номер ее столбца с наименьшим произведением элементов (C++):

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

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

Дана квадратная матрица. Найти строку с наибольшим и наименьшим произведением элементов - C++
Здарствуйте, помогите решить задачу на c++ Если можно, желательно это решить без массива Дана квадратная матрица. Найти строку с...

Найти номер столбца сумма элементов которого минимальна - C++
найти номер столбца сумма элементов которого минимальна C++

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

Найти и вывести номер столбца матрицы с максимальной суммой элементов - C++
Задана матрица А размера 4х4 с вещественными элементами. Требуется найти и вывести на печать номер столбца с максимальной суммой элементов....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.03.2010, 17:27 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int minProizv = Int_Max;
int jmin;
int Proizv;
for (int j=0; i<M; j++)
{
Proizv = 0;
for (int i=0; i<N; i++)
{
Proizv*=matrix[i][j];}
if (Proizv<maxProizv)
{
minProizv = Proizv;
jmin = j;
}
}
}
std::cout << "номер столбца с наименьшим произведением элементов: "<< jmin << std::endl;
std::cout << "наименьшее произведение элементов столбца: " << minProizv << std::endl;
Кажется так, не проверял!
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
17.03.2010, 18:00 #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
#include <stdio.h>
#include <conio.h>
 
#define H 3
#define W 4
int main(){
    int matrix[H][W] = {
        {9,2,3,7},
        {9,2,3,7},
        {9,2,3,7}
    };
 
int i,j;
int pr = 1;
int m_pr = 1;
int n_numb_stb = 0;
for(j=0;j<H;j++)m_pr*=matrix[j][0];
 
for(i=0;i<W;i++){
        for(j=0;j<H;j++)pr*=matrix[j][i];
    
        if(pr<m_pr){ 
        m_pr = pr;
        n_numb_stb = i;
        }
pr=1;
}
 
 
 
printf("minimalnoe pr :%d",m_pr);
printf("\n");
printf("numb stb with min pr :%d",n_numb_stb);
printf("\n");
getch();
return 0;
}
easybudda
Модератор
Эксперт CЭксперт С++
9531 / 5524 / 932
Регистрация: 25.07.2009
Сообщений: 10,611
17.03.2010, 18:04 #4
Цитата Сообщение от Mиxaил Посмотреть сообщение
C++
1
2
3
Proizv = 0; 
for (int i=0; i<N; i++) 
{ Proizv*=matrix[i][j];}
Ноль на что ни умножай, всё равно ноль получится...

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
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
    
/*
*   Дана матрица размера M ? N. Найти номер ее столбца с наименьшим произведением элементов 
*   и вывести данный номер, а также значение наименьшего произведения.
*/
    
long columnMul(int **arr, int rows, int column_index){
    long mul = 1;
    for ( int i = 0; i < rows; ++i )
        mul *= arr[i][column_index];
    return mul;
}
 
int main(){
    int rows, columns, i, j; // M & N
    std::cout << "Rows in matrix: ";
    std::cin >> rows;
    std::cout << "Columns in matrix: ";
    std::cin >> columns;
    int **matr = new int* [ rows ];
    for ( i = 0; i < rows; ++i )
        matr[i] = new int [ columns ];
        
    srand(time(NULL));
    for ( i = 0; i < rows; ++i )
        for ( j = 0; j < columns; ++j )
            matr[i][j] = rand() % 10 + 1;
    std::cout << "Values in matrix:" << std::endl;
    for ( i = 0; i < rows; ++i ){
        for ( j = 0; j < columns; ++j )
            std::cout << std::setw(3) << std::right << matr[i][j];
        std::cout << std::endl;
    }
    
    std::vector<long> muls;
    for ( j = 0; j < columns; ++j )
        muls.push_back(columnMul(matr, rows, j));
    std::vector<long>::iterator m = std::min_element(muls.begin(), muls.end());
    std::cout << "Column with minimum multiply have index " << std::distance(muls.begin(), m)
        << " starts by zero" << std::endl;
    std::cout << "Multiply of this column is " << *m << std::endl;
    
    for ( i = 0; i < rows; ++i )
        delete [] matr[i];
    delete [] matr;
    
    return 0;
}
Vanessa
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 14
17.03.2010, 18:30  [ТС] #5
А по проще никак? Я просто много не учила ещё, если не трудно подскажите пожалуйста по проще...
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
17.03.2010, 19:18 #6
А по проще никак...
Я просто много не учила ещё, если не трудно подскажите пожалуйста по проще...
Что понимается под словом проще?
Vanessa
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 14
17.03.2010, 23:42  [ТС] #7
Проще подрозумивается исходный код, написание его по другому....
Просто я говорила уже правда, мы многого не учили....Если можно то пожалуйста по-другому больше никак нельзя?
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.03.2010, 23:51 #8
easybudda, точняк!!!
C++
1
2
3
4
5
Proizv = 1; //поставим единичку
for (int i=0; i<N; i++)
{
Proizv*=matrix[i][j];
}


Добавлено через 3 минуты
Vanessa, а это и есть попроще, по крайней мере, мой код самый простой из всех остальных, только я тебе написал поиск столбца и максимального произведения, а остальное тебе придется самой дописать! проще никак не напишешь!!!
Vanessa
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 14
18.03.2010, 01:56  [ТС] #9
Спасибо вам за всё!)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2010, 01:56
Привет! Вот еще темы с ответами:

Найти номер последнего столбца сумма элементов которого четная - C++
Помогите разобраться где ошибка. Неправильно считает столбцы.... &quot;Последний столбец сумма элементов которой четная&quot; #include...

В целочисленной матрице найти номер столбца с минимальной суммой элементов - C++
С++.дана целочисленная матрица (m,n) Найти номер столбца с минимальной суммой элементов

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

Максимальный элемент каждого столбца заменить произведением отрицательных элементов его же - C++
4) Задана матрица A(n,m), в каждом столбце которой максимальный элемент необходимо заменить произведением отрицательных элементов этого же...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.03.2010, 01:56
Ответ Создать тему
Опции темы

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