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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
06.01.2011, 02:33     Найти наибольший элемент матрицы #1
Найти наибольший элемент матрицы и записать единицу в тот рядок и столбец на перекрёстке которых он содержится.Размерность матрицы вводить с клавиатуры,а элементы разместить в памяти динамически.

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

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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2011, 02:33     Найти наибольший элемент матрицы
Посмотрите здесь:

C++ Найти наибольший элемент в третьем столбце матрицы.
C++ Найти наибольший элемент побочной диагонали матрицы
Найти наибольший элемент матрицы C++
C++ Найти наибольший элемент главной диагонали квадратной матрицы
C++ Найти наибольший элемент и выбросить из матрицы строку и столбец, на пересечении которых стоит этот элемент
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KEKCoGEN
Модератор
 Аватар для KEKCoGEN
1711 / 1589 / 386
Регистрация: 28.12.2010
Сообщений: 6,485
06.01.2011, 03:18     Найти наибольший элемент матрицы #2
Всмысле проверить? Ты её запустил? Работает? Значит ок все
А если нет, то скажи в чем проблема.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
06.01.2011, 08:24     Найти наибольший элемент матрицы #3
Цитата Сообщение от vaik00 Посмотреть сообщение
Найти наибольший элемент матрицы и записать единицу в тот рядок и столбец на перекрёстке которых он содержится
Можно тогда так:
Найти наибольший элемент матрицы и записать вместо него единицу.
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 т.к. говорит что есть прототипы но я их увы не знаю=\
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;
}
Ошибок нет, но прога "крашится"
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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;
}
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" перепробывал другие рандомы тоже самое=\
Минич
 Аватар для Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
06.01.2011, 21:05     Найти наибольший элемент матрицы #8
добавь библиотеку <cstdlib>
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
06.01.2011, 21:15  [ТС]     Найти наибольший элемент матрицы #9
Увы добавляется новая ошибка т.к. отсутствует библиотека как таковая...
Минич
 Аватар для Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
06.01.2011, 21:19     Найти наибольший элемент матрицы #10
а так не пробовал?!
C++
1
#include <cstdlib.h>
или
C++
1
#include <stdlib.h>
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 и всё О_о
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
06.01.2011, 23:09     Найти наибольший элемент матрицы #12
Где? Киньте код
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 О_о
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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;
}
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
07.01.2011, 14:47     Найти наибольший элемент матрицы #15
У меня разные выводит, добавьте после 13-ой строки
C++
1
srand(time(NULL));
Добавлено через 26 секунд
опередили
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
07.01.2011, 15:22  [ТС]     Найти наибольший элемент матрицы #16
а Time.h и ctime.h разные? Потому что у меня ctime отсутствует...

и почему то пишет функция Strand имеет прототип О_о
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
07.01.2011, 15:30     Найти наибольший элемент матрицы #17
А версия какая? И что пишет?
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
07.01.2011, 15:33  [ТС]     Найти наибольший элемент матрицы #18
у меня Borland C++ 3.1
пишет "Function 'Stand' should have a prototype"
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
07.01.2011, 15:38     Найти наибольший элемент матрицы #19
Странно, при подключении ctime.h/ctime все должно работать...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 15:42     Найти наибольший элемент матрицы
Еще ссылки по теме:

C++ Найти наибольший элемент в каждом столбце матрицы
C++ Найти наибольший элемент матрицы расположенный ниже главной диагонали
C++ Найти наибольший отрицательный элемент матрицы кратный 5

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

Или воспользуйтесь поиском по форуму:
vaik00
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 16
07.01.2011, 15:42  [ТС]     Найти наибольший элемент матрицы #20
самое странное у меня нету ctime вообще...
Yandex
Объявления
07.01.2011, 15:42     Найти наибольший элемент матрицы
Ответ Создать тему
Опции темы

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