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

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

Войти
Регистрация
Восстановить пароль
 
pr1me222
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 71
#1

Произведение элементов в строках, которые не содержат нулевых элементов - C++

23.01.2013, 11:29. Просмотров 279. Ответов 1
Метки нет (Все метки)

Задание:
Реализуйте следующие задания своего варианта с использованием шаблона функции. Работа с двумерными массивами. Дана целочисленная прямоугольная матрица. Определить: Произведение элементов в тех строках, которые не содержат нулевых элементов.

Вод код:

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 <conio.h>
using namespace std;
 
template <class proizv> // template - определеяем шаблон функции, сlass - аргумент шаблона(на подобии типа), 
int find (proizv* mas)
{
int k[4],sum[4];
for(int i=0;i<4;i++)
{
 
    k[i]=0;
    
    for(int j=0;j<3;j++)
    {
        if(mas[i][j]=0) k[i]++;
    }
 
    sum[i]=1;
 
    if(k[i]==0)
    {
        for(int j=0;j<3;j++) sum[i] *= mas[i][j];
        return sum[i];
    }
}
    //return sum[i];
}
 
 
int main()
{
 
    int mas[4][3]={{-1, 0, 5},{1, 2, 0},{-4, 0,5},{4, -5, 6}};
    int  mas[100];
 
    cout << "Vvedite razer massiva = ";
    cin >> size;
    cout << "Vvedite massiv";
    for (i=0; i<size; i++)
    {
        cin >> mas[i];
    }*/
    //cout << "Massiv"<< mas<<endl;
        cout << "Proizvedenie  ulementov v teh strokah kotorue ne soderjat nul'= "<<find(mas);
        getch ();
        
 
}
Ошибка состоит в том что в результате выводится ноль. Помогите пожалуйста (
Заранее спасибо))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 11:29     Произведение элементов в строках, которые не содержат нулевых элементов
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.01.2013, 22:03     Произведение элементов в строках, которые не содержат нулевых элементов #2
pr1me222, ваша программа компилируется с ошибками... я не знаю как у Вас она работала, но у меня получился вот такой вариант:

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// 012.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <locale.h>
using namespace std;
 
template<class T>
void proizv_el(T &mas, const int n, const int m)
{
    bool flag;
    for(int i = 0; i < n; i++)
    {
        flag = false;
        int kol = 0, proizv = 1;
        for(int j = 0; j < m; j++)
        {
            if(mas[i][j] > 0)
            {
                kol++;
                if(kol == m)
                {
                    for(int f = 0; f < m; f++)
                    {
                        flag = true;
                        proizv *= mas[i][f];
                    }
                }
            }
        }
 
        if(flag == true)
            wcout << L"Произведение элементов в " << i << L" строке: " << proizv << "\n";
    }
 
}
 
int main()
{
    wcout.imbue(locale(".866"));
    const int n = 3, m = 3;
    int mas[n][m];
 
    wcout << L"Введите матрицу:\n";
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
        {
            wcout << L"Введите элемент матрицы[" << i << "][" << j << "]: ";
                cin >> mas[i][j];
        }
 
    wcout << L"\nИсходная матрицa:\n";
    for(int i = 0; i < n; i++)
    {
        cout << "\n\t";
        for(int j = 0; j < m; j++)
        {
            wcout << mas[i][j] << " ";
        }
    }
 
    cout << "\n\n";
    proizv_el(mas, n, m);
 
    cout << "\n\n";
    return 0;
}
Yandex
Объявления
23.01.2013, 22:03     Произведение элементов в строках, которые не содержат нулевых элементов
Ответ Создать тему
Опции темы

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