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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
#1

Найти наибольший элемент матрицы - C++

06.01.2011, 02:33. Просмотров 1627. Ответов 23
Метки нет (Все метки)

Найти наибольший элемент матрицы и записать единицу в тот рядок и столбец на перекрёстке которых он содержится.Размерность матрицы вводить с клавиатуры,а элементы разместить в памяти динамически.

Проверьте плиз прогу

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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
void main()
{ int i,j,m,n,x,y,max;
  float a[25][25];
clrscr();
randomize();
cout<<"Vvedit rozmirnist matrici M,N";
cin>>m>>n;
float**pa;
pa=new float*[m];
for(i=0;i<m;i++)
pa[i]=new float[n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
pa[i][j]=random(25)-10;
}
}
max=a[0][0];
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (max>a[i][j])
{
max=a[i][j];
x=i;
y=j;
}
for (i=0; i<m; i++)
a[i][y]=1;
for (j=0; j<n; j++)
a[x][j]=1;
clrscr();
cout<<"Rozmirnist Matryci m="<<m<<"n="<<n<<"\n";
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cout<<pa[i][j];
}
}
cout<<"\nRezultaty:\n";
cout<<"Max element= "<<max<<"\n";
cout<<a[i][j];
for(i=0;i<m;i++)
delete[] pa[i];
delete[] pa;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2011, 02:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти наибольший элемент матрицы (C++):

Найти наибольший элемент и выбросить из матрицы строку и столбец, на пересечении которых стоит этот элемент - C++
Дан массив mxn. Найти наибольший элемент и выбросить из массива строку и столбец на пересечении которых стоит этот элемент.

Найти наибольший элемент матрицы - C++
Дана матрица А(5,3) 1. Найти наибольший элемент матрицы 2. В строке, содержащей максимальный элемент матрицы, подсчитать сумму для...

Найти наибольший элемент матрицы - C++
Помогите плиз. Найти наибольший элемент матрицы |1 7 6| |0 2 3| |9 5 0|

Найти наибольший по модулю элемент матрицы - C++
Здравствуйте ! задана матрица А 0.30|1.20|-0.20 -0.10|-0.20|1.60 -1.50|-0.30|0.10 Как взять и...

Найти наибольший элемент в каждом столбце матрицы - C++
Помогите найти наибольшее число в каждом столбце матрицы #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include...

Найти наибольший элемент в заштрихованной части матрицы - C++
#include &lt;iostream&gt; using namespace std; const int n= 5; void main () { int a = {18, -45, 70, -28, 30, -66, 47, -39, -71, 0, 10,...

23
KEKCoGEN
Эксперт Java
1962 / 1837 / 441
Регистрация: 28.12.2010
Сообщений: 7,377
06.01.2011, 03:18 #2
Всмысле проверить? Ты её запустил? Работает? Значит ок все
А если нет, то скажи в чем проблема.
1
valeriikozlov
Эксперт С++
4672 / 2498 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
06.01.2011, 08:24 #3
Цитата Сообщение от vaik00 Посмотреть сообщение
Найти наибольший элемент матрицы и записать единицу в тот рядок и столбец на перекрёстке которых он содержится
Можно тогда так:
Найти наибольший элемент матрицы и записать вместо него единицу.
1
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
06.01.2011, 13:29  [ТС] #4
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Можно тогда так:
Найти наибольший элемент матрицы и записать вместо него единицу.
там нужно именно рядок и столбец записать единицами чтобы получилось типа такого
0 0 0 0 1 0
0 0 0 0 1 0
1 1 1 1 х 1
0 0 0 0 1 0
0 0 0 0 1 0

И нехочет компилировать Randomize и Random т.к. говорит что есть прототипы но я их увы не знаю=\
0
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
06.01.2011, 14:13 #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
42
43
44
45
46
47
48
49
50
51
52
53
 
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <ctime>
using namespace std;
void main()
{ int i,j,m,n,x,y,max;
  float a[25][25];
 
cout<<"Vvedit rozmirnist matrici M,N";
cin>>m>>n;
float**pa;
pa=new float*[m];
for(i=0;i<m;i++)
pa[i]=new float[n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
pa[i][j]=rand()%25 - 10;
}
}
max=a[0][0];
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (max>a[i][j])
{
max=a[i][j];
x=i;
y=j;
}
for (i=0; i<m; i++)
a[i][y]=1;
for (j=0; j<n; j++)
a[x][j]=1;
 
cout<<"Rozmirnist Matryci m="<<m<<"n="<<n<<"\n";
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
 
cout<<pa[i][j]<< '\t';
cout<<" "<<endl;
}
 
cout<<"\nRezultaty:\n";
cout<<"Max element= "<<max<<"\n";
cout<<a[i][j];
for(i=0;i<m;i++)
delete[] pa[i];
delete[] pa;
}
Ошибок нет, но прога "крашится"
1
valeriikozlov
Эксперт С++
4672 / 2498 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
06.01.2011, 15:48 #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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <ctime>
using namespace std;
void main()
{ int i,j,m,n,x,y,max;
  float a[25][25];// здесь создана матрица a[][]
 
cout<<"Vvedit rozmirnist matrici M,N";
cin>>m>>n;
float**pa;
pa=new float*[m];// здесь создана матрица pa[][]
for(i=0;i<m;i++)
pa[i]=new float[n];
for(i=0;i<m;i++)// в этих циклах заполняется значениями матрица pa[][]
{
for(j=0;j<n;j++)
{
pa[i][j]=rand()%25 - 10;
}
}
max=a[0][0];
for (i=0; i<m; i++)// а в этих циклах ищется максимальный элемент у матрицы a[][] (значения у которой не заданы)
for (j=0; j<n; j++)
if (max>a[i][j])
{
max=a[i][j];
x=i;// желательно x и y задать начальные значения равные 0, ведь ранее написано: max=a[0][0]; (а вдруг максимальный элемент находится [0][0])
y=j;
}
for (i=0; i<m; i++)// опять работаем с матрицей a[][] (значения у которой не заданы)
a[i][y]=1;
for (j=0; j<n; j++)
a[x][j]=1;
 
cout<<"Rozmirnist Matryci m="<<m<<"n="<<n<<"\n";
for(i=0;i<m;i++) // выводим на экран значения элементов матрицы pa[][] у которой значения элементов заданы, но которую мы не трогали после этого
{
for(j=0;j<n;j++)
 
cout<<pa[i][j]<< '\t';
cout<<" "<<endl;
}
 
cout<<"\nRezultaty:\n";
cout<<"Max element= "<<max<<"\n";
cout<<a[i][j];
for(i=0;i<m;i++)
delete[] pa[i];
delete[] pa;
}
1
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
06.01.2011, 21:01  [ТС] #7
Теперь на pa[i][j]=rand()%25 - 10; выдаёт ошибку "Function rand have a prototype" перепробывал другие рандомы тоже самое=\
0
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
06.01.2011, 21:05 #8
добавь библиотеку <cstdlib>
1
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
06.01.2011, 21:15  [ТС] #9
Увы добавляется новая ошибка т.к. отсутствует библиотека как таковая...
0
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
06.01.2011, 21:19 #10
а так не пробовал?!
C++
1
#include <cstdlib.h>
или
C++
1
#include <stdlib.h>
1
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
06.01.2011, 21:42  [ТС] #11
пробывал я просто в корневой папке компилятора смотрел такой нет...

Добавлено через 9 минут
C++
1
#include <stdlib.h>
Спасибо помогло=)

Только как то странно он матрицу создаёт пишу ему 5х5 а он мне создаёт 10х3
Оо

Добавлено через 12 минут
Всё уже исправил только непойму почему у меня всегда максимальный элемент всегда -9 и всё О_о
0
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
06.01.2011, 23:09 #12
Где? Киньте код
1
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
07.01.2011, 14:06  [ТС] #13
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 <stdio.h>
#include <conio.h>
#include <ctime>
using namespace std;
void main()
{ int i,j,m,n,x,y,max;
 
cout<<"Vvedit rozmirnist matrici M,N";
cin>>m>>n;
float**pa;
pa=new float*[m];
for(i=0;i<m;i++)
pa[i]=new float[n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
pa[i][j]=rand()%25 - 10;
}
}
max=pa[0][0];
x=0;
y=0;
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (max>pa[i][j])
{
max=pa[i][j];
x=i;
y=j;
}
for (i=0; i<m; i++)
pa[i][y]=1;
for (j=0; j<n; j++)
pa[x][j]=1;
 
cout<<"Rozmirnist Matryci m="<<m<<"n="<<n<<"\n";
for(i=0;i<m;i++) 
{
for(j=0;j<n;j++)
 
cout<<pa[i][j]<< '\t';
cout<<" "<<endl;
}
 
cout<<"\nRezultaty:\n";
cout<<"Max element= "<<max<<"\n";
for(i=0;i<m;i++)
delete[] pa[i];
delete[] pa;
}

вот исправленый код...но как уже писал ранее макс элемент всегда -9 О_о
0
valeriikozlov
Эксперт С++
4672 / 2498 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.01.2011, 14:45 #14
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот так попробуйте:
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <ctime>
using namespace std;
void main()
{ int i,j,m,n,x,y,max;
srand( time( NULL ) );
 
cout<<"Vvedit rozmirnist matrici M,N";
cin>>m>>n;
float**pa;
pa=new float*[m];
for(i=0;i<m;i++)
pa[i]=new float[n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
pa[i][j]=rand()%25 - 10;
}
}
cout<<"Ishodnay Matryca"<<"\n";
for(i=0;i<m;i++) 
{
for(j=0;j<n;j++)
 
cout<<pa[i][j]<< '\t';
cout<<" "<<endl;
}
 
max=pa[0][0];
x=0;
y=0;
for (i=0; i<m; i++)
for (j=0; j<n; j++)
if (max<pa[i][j])
{
max=pa[i][j];
x=i;
y=j;
}
for (i=0; i<m; i++)
pa[i][y]=1;
for (j=0; j<n; j++)
pa[x][j]=1;
 
cout<<"Rozmirnist Matryci m="<<m<<"n="<<n<<"\n";
for(i=0;i<m;i++) 
{
for(j=0;j<n;j++)
 
cout<<pa[i][j]<< '\t';
cout<<" "<<endl;
}
 
cout<<"\nRezultaty:\n";
cout<<"Max element= "<<max<<"\n";
for(i=0;i<m;i++)
delete[] pa[i];
delete[] pa;
}
1
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
07.01.2011, 14:47 #15
У меня разные выводит, добавьте после 13-ой строки
C++
1
srand(time(NULL));
Добавлено через 26 секунд
опередили
1
07.01.2011, 14:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 14:47
Привет! Вот еще темы с ответами:

Найти наибольший элемент в третьем столбце матрицы. - C++
1) Найти наибольший элемент в третьем столбце матрицы. 2) найти произведение всех элементов матрицы. 3) Найти сумму всех положительных...

Найти наибольший элемент побочной диагонали матрицы - C++
Найдите наибольший элемент побочной диагонали заданной матрицы A(N, N) и выведите на печать всю строку, в которой он находится.

Найти наибольший отрицательный элемент матрицы кратный 5 - C++
Дана матрица целых чисел A(N, M). Найдите её наибольший отрицательный элемент. кратный 5. Выведите элемент и номера строки и столбца, на...

Ввод с клавы размера целочисленной матрицы, а затем самой матрицы. Найти наибольший элемент. Разрешается использовать только один оператор цикла - C++
С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти наибольший элемент. Разрешается при этом использовать...


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

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

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