Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Expelio
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 23
#1

Матрицы. нулевые и одинаковые строки.

22.03.2010, 09:21. Просмотров 667. Ответов 2
Метки нет (Все метки)

Дана целочисленная матрица размера 5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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <iomanip>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{const int N1=5;
const int M1=6;
int i,j;
int l=0,g=0,lmax=0;
 
    int x[N1][M1];
 
 
for (i=0; i<N1; i++)
           { for (j=0; j<M1; j++)
                    { cout << "x[" << i <<"][" << j<<"]=";
                  cin >> x[i][ j];   }
           }
 
cout << "Vvedennaya matrica" << endl;
for (i=0;i<N1;i++)
         { for (j=0;j<M1;j++)
            { 
               cout << setw(4) << x[i][j];
            }
       cout <<endl;
   }
 
int row;
for(i=0;i<N1;i++) {
    for (j=0;j<M1;j++) {
        for (int n=0;n<N1;n++)
        {if (x[i][j]==0) row=i; else ; }
      
            }
        }
 
cout << row << endl;
 
    return 0;
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2010, 09:21
Ответы с готовыми решениями:

Найти нулевые строки матрицы
Задана матрица целых чисел.Найти номера строк все элементы которых равны...

Удалить из матрицы нулевые строки
Господа уважаемые программеры! Пожалуйста помогите доделать детскую прогу. ...

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

Матрицы. Необходимо найти значение среднего арифметического строк матрицы, исключая нулевые, в случае, если строка имеет отрицательный элемент(ы)
Добрый день уважаемые форумчане! На днях возник вопрос, как найти среднее...

Если последняя строка данной матрицы содержит нулевые элементы - домножить все элементы матрицы на 10
Дана действительная матрица С(n*m).Если последняя строка данной матрицы...

2
Himka
2 / 2 / 1
Регистрация: 28.02.2010
Сообщений: 5
22.03.2010, 11:28 #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
#include "stdafx.h"
#include <iostream.h>
#include <iomanip.h>
 
int main(int argc, char* argv[])
{int i,j;
 int X[5][6];
 int counter=0;
 int r; 
 
for (i=0; i<5; i++)
 for (j=0; j<6; j++)
 { cout << "X[" << i <<"][" << j<<"] = ";
   cin >>X[i][ j]; 
 }
cout<<"Vvedennaya matrica"<<endl;
for (i=0; i<5; i++)
{for (j=0; j<6; j++)
   cout << setw(5) <<X[i][j];
 cout <<endl;
}
 
for(i=0; i<5; i++)
{r=1;
 for (j=0; j<5; j++) 
  if (X[i][j]!=X[i][j+1])
   {r=0;
    break; 
  }
  if (r==1)
  {counter++;
   if (X[i][5]==0)
    cout<<"Stroka nomer "<<i<<" - nulevaya"<<endl;
   else
    cout<<"U stroki nomer "<<i<<" vse elementy odinakovy"<<endl;
  }          
}                     
                
if (counter==0)
  cout<<"Matrica ne sodergit strok, v kotoryh vse elementy ravny"<<endl; 
return 0;
}
2
Genius Ignat
1241 / 779 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
22.03.2010, 11:32 #3
Индексы строк начинаются с 0.
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <iostream.h>
//Описание узла стека:
struct Node {
int n_str;
Node *pnext;
};
 
//----------------------------------------------------------------------
int push(Node **top, int index); //положить на вершину стека
int pop(Node **top);             //выборка  из стека
int print(Node *top);            //показать значения стека
int Update(Node **top);          //полное освобождение памяти из под стека.
//----------------------------------------------------------------------
 
 
//Клиент:
int main(){
 
const int H = 5;
const int W = 5;
int matrix[H][W] = {
    {1,1,1,1,1},
    {5,5,5,5,5},
    {0,0,0,0,0},
    {1,1,1,1,1},
    {0,0,0,0,0}
 
};
Node *top_Null_str = NULL;   //используется для хранения номеров строк со всеми 0
Node *top_Equal_str = NULL;  //для хранения номеров строк где все элементы равны.
 
//Рабочая часть:
for( int i = 0 ; i < H ; i++ ){  
         int count_n = 0;
         int count_e = 0;
 
             for( int j = 0 ; j < W; j++ ) {
 
         if(matrix[i][0]==matrix[i][j]&&(matrix[i][j]!=0))count_e++;
                 if(matrix[i][j]==0)count_n++;
 
             }
 
             if(count_n == W)push(&top_Null_str,i);
             if(count_e == W)push(&top_Equal_str,i);
 
}
 
 
//-------------------------
cout<<"Null str  \n"; print(top_Null_str);
cout<<"Equal str \n"; print(top_Equal_str);
 
 
 
 
//-------------------------
Update(&top_Null_str);
Update(&top_Equal_str);
//-------------------------
return 0;
}
 
int push(Node **top, int index){
//Если формируем первый элемент.
if((*top)==NULL){
Node * pv = new Node ;
pv->n_str = index;
pv->pnext = NULL;
(*top)=pv;
return 0;
}
 
//Иначе добавляем на вершину.
else {            
Node * pv = new Node ;
pv->n_str = index;
pv->pnext = (*top);
(*top)= pv;
return 0;
}
 
return 0;
 
 
}
 
 
//выборка  из стека
int pop(Node **top){
Node *tmp = (*top);
if(tmp){
int str = tmp->n_str;
(*top)=(*top)->pnext;
delete tmp;
return str;
}
 
return 0;
}
 
//показать значения стека
int print(Node *top){   
while(top){
cout<<"Number_str "<<top->n_str<<'\n';
top = top->pnext;
}
cout<<'\n';
return 0;
}
int Update(Node **top){ 
    while((*top)){
    pop(top);
}
    
    return 0; 
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2010, 11:32

Все нулевые элементы матрицы заменить на единицу
Условие: Все нулевые элементы заменить на единицу! Во второй строке у меня там...

Найти нулевые строки и столбцы в матрице
Доброго всем дня)) помогите сделать часть кода на проверку строк и столбцов...

Сохранить нулевые элементы матрицы, расположенные в шахматном порядке
Сохранить все нулевые элементы матрицы, размещенные в шахматном порядке,...


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

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

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