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

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

Восстановить пароль Регистрация
 
Iriska
Сообщений: n/a
20.04.2009, 21:13     Целочисленная прямоугольная матрица #1
Ребят,помогите пожалуйста найти ошибку...
Задача:Дана целочисленная прямоугольная матрица.Определить: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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2009, 21:13     Целочисленная прямоугольная матрица
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sergei
 Аватар для Sergei
1424 / 691 / 40
Регистрация: 22.04.2008
Сообщений: 1,608
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];
}
verwolf1207
0 / 0 / 0
Регистрация: 09.09.2009
Сообщений: 5
09.09.2009, 20:39     Целочисленная прямоугольная матрица #3
Ребята! Очень нужна ваша помощь.... дело в том, что у меня на лабу такое же задание... но вот насчёт праильности этого кода есть некоторые сомнения.... Помогите плиз кто-нибудь, скажите, есть ли тут какие-то ошибки, кроме неправильного задания массива. в частности интересует алгоритм выполнения обоих задач. Заранее большое спасибо
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 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);
}
verwolf1207
0 / 0 / 0
Регистрация: 09.09.2009
Сообщений: 5
13.09.2009, 19:03     Целочисленная прямоугольная матрица #5
Огромное спасибо за правильный ответ!)))) Вот только, зачем надо строчка l=row; так и не понял. поэтому сделал всё без неё и всё отлично пашет! Огромное спасибо!
Yandex
Объявления
13.09.2009, 19:03     Целочисленная прямоугольная матрица
Ответ Создать тему
Опции темы

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