2 / 2 / 0
Регистрация: 30.10.2012
Сообщений: 45
1

Определить количество строк матрицы, не содержащих ни одного нулевого элемента

26.11.2012, 16:51. Показов 1650. Ответов 11
Метки нет (Все метки)

Дана целочисленная квадратная матрица. Определить:
• количество строк, не содержащих ни одного нулевого элемента;
• максимальное из чисел, встречающихся в заданной матрице более одного раза.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2012, 16:51
Ответы с готовыми решениями:

Определить количество строк матрицы, не содержащих ни одного нулевого элемента
помогите пожалуйста с задачкой разобраться, задание следующее - "Используя обьявления массивов...

Определить количество строк матрицы, не содержащих ни одного нулевого элемента
Дана целочисленная матрица прямоугольного типа: X.Определить: 1) количество строк,не содержащих ни...

Определить количество строк матрицы, не содержащих ни одного нулевого элемента
Ввести с клавиатуры вещественную матрицу размерностью 5х5. Определить количество строк, не...

Определить количество строк матрицы, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица.Определить: 1)Количество строк ,не содержащих ни одного...

11
3 / 3 / 2
Регистрация: 13.06.2012
Сообщений: 50
26.11.2012, 18:30 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 <stdlib.h>
using namespace std;
 
 
int main()
{
    int N;
    cin >> N; // Размер матрицы
    int a[N][N];
    for (int i=0;i<N;i++)
        for (int j=0;j<N;j++)
            cin >> a[i][j];
    int max=0;
    for (int i=0;i<N;i++)
        for (int j=0;j<N;j++)
            if (a[i][j]>max)
            {
                int ti=i,tj=j;
                for (int k=0;k<N;k++)
                    for (int l=0;l<N;l++)
                        if ((a[i][j]==a[k][l])&&!((ti==k)&&(tj==l)))
                        {
                            max=a[i][j];
                            break;
                        }
            }
    int res=0;
    for (int i=0;i<N;i++)
    {
        bool f1=false;
        for (int j=0;j<N;j++)
            if (a[i][j]==0)
                f1=true;
        if (!f1) res++;
    }
    cout << max <<' '<<res;
    return 0;
}
[удалено]
З.Ы. мб есть и лучшие алгоритмы.
0
56 / 52 / 21
Регистрация: 01.01.2012
Сообщений: 347
26.11.2012, 18:34 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <vector>
#include <algorithm>
#include <conio>
#include <iterator>
#include <stdlib>
using namespace std;
 
void main()
{
const int i_n = 10;
int i_c = 0, i_v = 0, i_1;
vector<int> v_2(i_n);
vector<vector<int> > v_1(i_n, v_2);
v_2.reserve(i_n * i_n);
 
/*for(i_1 = 0; i_1 < i_n; ++i_1)
for(int i_2 = 0; i_2 < i_n; ++i_2)     Инициализация
v_1[i_1][i_2] = rand() % 100;
*/
 
for(i_1 = 0; i_1 < i_n; ++i_1)
if(find(v_1[i_1].begin(), v_1[i_1].end(), 0) == v_1[i_1].end())
++i_c;
 
for(vector<vector<int> >::iterator ptr_1 = v_1.begin(); ptr_1 != v_1.end(); ++ptr_1)
v_2.insert(v_2.begin(), ptr_1->begin(), ptr_1->end());
 
unique(v_2.begin(), v_2.end());
sort(v_2.begin(), v_2.end(), greater<int>());
 
for(i_1 = 0; i_1 < v_2.size(); ++i_1)
for(int i_2 = 0; i_2 < i_n; ++i_2)
if(count(v_1[i_2].begin(), v_1[i_2].end(), v_2[i_1]) > 1)
{
i_v = v_2[i_1];
goto end;
}
 
end :
 
cout<<endl;
for(i_1 = 0; i_1 < i_n; ++i_1)
{
copy(v_1[i_1].begin(), v_1[i_1].end(), ostream_iterator<int>(cout, " "));
cout<<endl;
}
 
cout<<"count strings: "<<i_c<<endl<<"max: "<<i_v;
 
getch();
}
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.11.2012, 18:47 4
MilosedOFF Во первых ваш код, содержит ошибки, во вторых прочитайте внимательно правила, в особенности пункт 5.10
0
56 / 52 / 21
Регистрация: 01.01.2012
Сообщений: 347
26.11.2012, 18:52 5
что за ошибки?

и кстати мне не доступны функции редактора
0
3 / 3 / 2
Регистрация: 13.06.2012
Сообщений: 50
26.11.2012, 18:53 6
Цитата Сообщение от David Sylva Посмотреть сообщение
MilosedOFF Во первых ваш код, содержит ошибки, во вторых прочитайте внимательно правила, в особенности пункт 5.10
Извиняюсь за нарушенный пункт, но какие ошибки мой код содержит? У вас он не компилируется?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.11.2012, 18:54 7
no_wearines не тебе написал, а MilosedOFF
0
56 / 52 / 21
Регистрация: 01.01.2012
Сообщений: 347
26.11.2012, 18:55 8
понял. пардон. чтоа затупил
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.11.2012, 18:57 9
Цитата Сообщение от MilosedOFF Посмотреть сообщение
Извиняюсь за нарушенный пункт, но какие ошибки мой код содержит? У вас он не компилируется?
Извиняться не за что, просто так делать нельзя. Внимательно твой код не смотрел, но у тебя нет динамического выделения памяти и по коду, очень много вложенных циклов.
0
3 / 3 / 2
Регистрация: 13.06.2012
Сообщений: 50
26.11.2012, 19:03 10
Цитата Сообщение от David Sylva Посмотреть сообщение
у тебя нет динамического выделения памяти и по коду, очень много вложенных циклов.
Это все-таки раздел для новичков, динамическая память для решения такой задачи вовсе не обязательна. А насчет вложенных циклов - это да, ресурсоемкий, но зато простой в реализации алгоритм. Но все же это не ошибки, а замечания.
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.11.2012, 19:10 11
То есть вот тут нет ошибки?
C++
1
2
3
 int N;
    cin >> N; // Размер матрицы
    int a[N][N];
Да это раздел для новичков,.Но ты выкладываешь код в котором необходимо динамическое выделение памяти.Ты написал, неправильный код в котором серьёзная ошибка, здесь спорить не о чем.
0
3 / 3 / 2
Регистрация: 13.06.2012
Сообщений: 50
26.11.2012, 19:15 12
Некоторые компиляторы ругаются на такие объявления, но свежий MinGW нет. Спорить насчет корректности такого объявления можно бесконечно, но предлагаю закончить на этом.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2012, 19:15
Помогаю со студенческими работами здесь

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

Определить количество строк матрицы не содержащих ни одного нулевого элемента
Дано целочисленную прямоугольную матрицу. Определите: 1). Количество строк, не содержащих ни...

Определить количество строк, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество строк, не содержащих ни одного...

Определить количество строк, не содержащих ни одного нулевого элемента
#include &lt;iostream&gt; using namespace std; void main() { setlocale(LC_ALL, &quot;Russian&quot;); int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru