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

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

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

Целочисленная прямоугольная матрица - C++

20.04.2009, 21:13. Просмотров 755. Ответов 4
Метки нет (Все метки)

Ребят,помогите пожалуйста найти ошибку...
Задача:Дана целочисленная прямоугольная матрица.Определить:1)количество строк,не содержащих ни одного нулевого элемента;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
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
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
/*
 *
 */
 
    int main(int argc, char** argv) {
    srand(time(NULL));
    int **a=NULL;
    int row,column,x1,x2,counter,i,j,l,p;
    cout << "Vvedite kolichestvo strok" << endl;
    cin >> row;
    cout << "Vvedite kolichestvo stolbcov" << endl;
    cin >> column;
    while (row<=0 && column <=0) {
        cout << "Znacheniya dolzhny byt >0" << endl;
        cout << "Vvedite  kolichestvo strok" <<endl;
        cin >> row;
        cout << "Vvedite kolonku" <<endl;
        cin >> column;
    }
    cout <<"\nMatrix\n" <<endl;
    int math[row][column];
    for(x1=0;x1<row;x1++){
        for (x2=0;x2<column;x2++){
            math[x1][x2]=rand()%100;
            cout <<math[x1][x2]<<" ";
        }
        cout <<"\n";
    }
  
     counter;
    bool counter1=false;
    for (x2=0; x2<row; x2++){
        counter=0;
        for (x1=0; x1<column;x1++ ){
            if (math[x1][x2]!=0){
                counter=counter+1;
               
            }
        }
        if (counter==row){
        cout << "Kolichestvo strok bez nulej  "<<i+1<<endl;
        counter1=true;
        break;
        }
    }
    if (counter1==false){
        cout <<"net takix strok"<<endl;
    }
 
    cout<<endl;
  
    int max=0;
    bool fl=false;
    for (int i=0; i<row; i++)
        for (int j=0; j<column; j++)
            if ((fl && a[i][j]>max) || (!fl)){
                for (int l=0; l<row; l++){
                    for (int p=0; p<column; p++){
                        if ((a[l][p]==a[i][j]) && (l!=i || p!=j)){
                            if (!fl) fl=true;
                            max=a[i][j];
                            l=row;
                            break;
                        }
                    }
                }
            }
 
        if (fl)
            cout <<"Maksimalnoe sredi povtoryayuschixsya:" <<max;
        else
            cout << "Net povtorov";
        return 0;
        return (EXIT_SUCCESS);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2009, 21:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Целочисленная прямоугольная матрица (C++):

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

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

Целочисленная прямоугольная матрица - C++
Дана целочисленная прямоугольная матрица размера m×n. Составить программу, которая находит номер столбца, в котором находится самая длинная...

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

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

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

4
Sergei
1441 / 708 / 41
Регистрация: 22.04.2008
Сообщений: 1,610
21.04.2009, 10:08 #2
Ну если вы хотить считывать с клавиатуры размер матрицы то память под матрцу надо выделять днамически.
C++
1
2
3
4
5
6
7
8
int **math:
//после того как считаете значения 
// row, column
math = new int*[row];
for(int i = 0;i<row;i++)
{
   math[i] = new int[column];
}
0
verwolf1207
0 / 0 / 0
Регистрация: 09.09.2009
Сообщений: 5
09.09.2009, 20:39 #3
Ребята! Очень нужна ваша помощь.... дело в том, что у меня на лабу такое же задание... но вот насчёт праильности этого кода есть некоторые сомнения.... Помогите плиз кто-нибудь, скажите, есть ли тут какие-то ошибки, кроме неправильного задания массива. в частности интересует алгоритм выполнения обоих задач. Заранее большое спасибо
0
valeriikozlov
Эксперт С++
4677 / 2503 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
10.09.2009, 01:21 #4
Описывать все Ваши ошибки долго (их много), просто выкладываю Ваш исправленный код (который теперь работает правильно):
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
/*
 *
 */
 int i, **math;
    int main(int argc, char** argv) {
    srand(time(NULL));
    int **a=NULL;
    int row,column,x1,x2;
    cout << "Vvedite kolichestvo strok" << endl;
    cin >> row;
    cout << "Vvedite kolichestvo stolbcov" << endl;
    cin >> column;
    while (row<=0 && column <=0) {
        cout << "Znacheniya dolzhny byt >0" << endl;
        cout << "Vvedite  kolichestvo strok" <<endl;
        cin >> row;
        cout << "Vvedite kolonku" <<endl;
        cin >> column;
    }
    cout <<"\nMatrix\n" <<endl;
math = new int*[row];
for(int i = 0;i<row;i++)
{
   math[i] = new int[column];
}
    for(x1=0;x1<row;x1++){
        for (x2=0;x2<column;x2++){
            math[x1][x2]=rand()%100;
            cout <<math[x1][x2]<<" ";
        }
        cout <<"\n";
    }
  
    int temp=0;
    int counter1=0;
    for (x2=0; x2<row; x2++){
        temp=0;
        for (x1=0; x1<column;x1++ ){
            if (math[x1][x2]!=0){
                temp++;
               
            }
        }
        if (temp==column){
            counter1++;                 
        }
        
    }
    
       
    if (counter1==row)
        cout <<"net takix strok"<<endl;
    else
        cout << "Kolichestvo strok bez nulej  "<<counter1<<endl;
 
    cout<<endl;
  
    int max=0;
    bool fl=false;
    for (i=0; i<row; i++)
        for (int j=0; j<column; j++)
            if ((fl && math[i][j]>max) || (!fl)){
                for (int l=0; l<row; l++){
                    for (int p=0; p<column; p++){
                        if ((math[l][p]==math[i][j]) && (l!=i || p!=j)){
                            if (!fl) fl=true;
                            max=math[i][j];
                            l=row;
                            break;
                        }
                    }
                }
            }
 
        if (fl)
            cout <<"Maksimalnoe sredi povtoryayuschixsya:" <<max;
        else
            cout << "Net povtorov";
        return 0;
        return (EXIT_SUCCESS);
}
0
verwolf1207
0 / 0 / 0
Регистрация: 09.09.2009
Сообщений: 5
13.09.2009, 19:03 #5
Огромное спасибо за правильный ответ!)))) Вот только, зачем надо строчка l=row; так и не понял. поэтому сделал всё без неё и всё отлично пашет! Огромное спасибо!
0
13.09.2009, 19:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2009, 19:03
Привет! Вот еще темы с ответами:

Целочисленная прямоугольная матрица - C++
помогите,пожалуйста! задание:Дана целочисленная прямоугольная матрица. Определить: 1.количество строк, содержащих хотя бы один нулевой...

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

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

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


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

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

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