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

Прямоугольная матрица. Нужен взгляд специалиста! - C++

Восстановить пароль Регистрация
 
Vitaliy+
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 8
11.12.2010, 13:50     Прямоугольная матрица. Нужен взгляд специалиста! #1
Дана целочисленная прямоугольная матрица. Определить:
1. номер первого из столбцов, содержащих хотя бы один нулевой элемент.
2. Номер строки в которой находится самая длинная серия одинаковых элементов

Вот только программа когда ищет Номер строки в которой находится самая длинная серия одинаковых элементов, то выдает постоянно 5 строчку. Я не могу понять почему. Где ошибка?

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
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
 
int main()
{
clrscr();
const n = 6, m = 5;
int i,j,max=0,k1,k2,a[n][m] = {{1, 0, 3, 4, 5}, {1, 1, 9, 8, 7}, {4, 5, 5, 8, 5}, {9, 6, 0, 6, 2}, {7, 7, 1, 7, 7}, {6, 6, 6, 6, 6}} ;
for (i=0;i<n;i++)
{   for (j=0;j<m;j++)
{       cout<<setw(4)<<a[i][j]<<" ";
}
cout<<"\n";
}
  for(j=0; j<m; j++)
           {
    for(i=0; i<n; i++)
    {   if (a[i][j]==0) {
                cout<<"stolbec  0: "<<j+1<<endl;
        }
           }
    }
for(j=0; j<m; j++)
    { 
    for(i=0; i<n; i++)
        {   if (a[i][j]==a[i][j+1])
            {k1=k1+1;}
                
 
        if (k1>k2)
            {max=i;
            k2=k1;}
    }
 
}
 cout<<"max="<<max;
 
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 13:50     Прямоугольная матрица. Нужен взгляд специалиста!
Посмотрите здесь:

C++ прямоугольная матрица на С
Прямоугольная матрица C++
C++ Прямоугольная матрица
Прямоугольная матрица C++
C++ Прямоугольная матрица A[N,M]
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
11.12.2010, 14:34     Прямоугольная матрица. Нужен взгляд специалиста! #2
Потому что в Си нумерация начинается с 0.
Просьба к автору - в коде длинные строчки по возможности разбивать на несколько. За ... мучился искать конец массива.
michurinnn
 Аватар для michurinnn
15 / 15 / 1
Регистрация: 02.12.2010
Сообщений: 48
11.12.2010, 14:34     Прямоугольная матрица. Нужен взгляд специалиста! #3
строки 25 - 37:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(j=0; j<m; j++)
        { 
        for(i=0; i<n; i++)
                {   if (a[i][j]==a[i][j+1])
                        {k1=k1+1;}
                                
 
                if (k1>k2)
                        {max=i;
                        k2=k1;}
        }
 
}
после прохода очередной строки к1 нужно обнулять.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for(i=0; i<n; i++)
        { 
        k1 = 0;
        for(j=0; j<m; j++)
                {   if (a[i][j]==a[i][j+1])
                        {k1=k1+1;}
                                
 
                if (k1>k2)
                        {max=i;
                        k2=k1;}
        }
 
}
P.S. И при объявлении к1 и к2 присвоить им нули.
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
11.12.2010, 14:39     Прямоугольная матрица. Нужен взгляд специалиста! #4
Да и цикл по j должен быть не до m, а до m - 1, а то будет обращение к несуществующим членам матрицы.
michurinnn
 Аватар для michurinnn
15 / 15 / 1
Регистрация: 02.12.2010
Сообщений: 48
11.12.2010, 14:46     Прямоугольная матрица. Нужен взгляд специалиста! #5
Цитата Сообщение от besstiaa Посмотреть сообщение
Да и цикл по j должен быть не до m, а до m - 1, а то будет обращение к несуществующим членам матрицы.
Точно?
m = 5 ( 5 элементов в строке)
for ( j = 0; j <5; j++) == 0...4
или я не прав?
Reee
 Аватар для Reee
21 / 21 / 1
Регистрация: 21.09.2010
Сообщений: 65
11.12.2010, 15:17     Прямоугольная матрица. Нужен взгляд специалиста! #6
А вот мой код

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
#include <iostream>
#include <iomanip>
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    const int  n=6, m=5;
    int mass[n][m]={
        {1, 0, 3, 4, 5},
        {1, 1, 9, 8, 7},
        {4, 5, 5, 8, 5}, 
        {9, 6, 0, 6, 2}, 
        {7, 7, 1, 7, 7}, 
        {6, 6, 6, 6, 6}};
    
    for (int i=0;i<n;i++)
    {
       for(int j=0;j<m;j++)
             std::cout<<std::setw(2)<<mass[i][j];
       std::cout<<std::endl;
    }
 
    for(int j=0; j<m; j++)
    {
        for(int i=0; i<n; i++)
           if (mass[i][j]==0)
           {
                std::cout<<"Столбец: "<<j+1<<std::endl;
                continue;
           }   
    }
 
    int max=0, max2=0, str=0, str2=0, R=0;
 
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
            {
                for(int k=0; k<m; k++)
                {
                    if(mass[i][j]==mass[i][k])
                    {
                        max++;
                    }
                }
                if(max>max2)
                {
                    max2=max;
                    max=0;
                }
                else
                    max=0;  
            }   
        str=max2;
        if(str>str2)
        {
            str2=str;
            R=i+1;
            str=0;
        }
        else
            str=0;
    }
    std::cout<<R;
}
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
11.12.2010, 15:24     Прямоугольная матрица. Нужен взгляд специалиста! #7
michurinnn,а при
C++
1
if (a[i][j]==a[i][j+1])
j+1 элемент каким будет? из несуществующего пятого столбца? т.е. шестого)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 00:00     Прямоугольная матрица. Нужен взгляд специалиста!
Еще ссылки по теме:

C++ Бугсую. Нужен свежий взгляд
Нужен взгляд со стороны C++

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

Или воспользуйтесь поиском по форуму:
michurinnn
 Аватар для michurinnn
15 / 15 / 1
Регистрация: 02.12.2010
Сообщений: 48
12.12.2010, 00:00     Прямоугольная матрица. Нужен взгляд специалиста! #8
Цитата Сообщение от besstiaa Посмотреть сообщение
michurinnn,а при
C++
1
if (a[i][j]==a[i][j+1])
j+1 элемент каким будет? из несуществующего пятого столбца? т.е. шестого)
А, ну да.
Yandex
Объявления
12.12.2010, 00:00     Прямоугольная матрица. Нужен взгляд специалиста!
Ответ Создать тему
Опции темы

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