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

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

Войти
Регистрация
Восстановить пароль
 
Dreamfactor
0 / 0 / 0
Регистрация: 28.10.2011
Сообщений: 208
#1

Как найти максимальный элемент в каждой строчке матрицы ? - C++

27.03.2012, 19:24. Просмотров 892. Ответов 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
#include <iostream>
using namespace std;
const int N=3,M=3;
void Input(int x[N][M],int n, int m,char*name)
{
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
        {
            cout<<"Vvedite "<<name<<"["<<i<<"]["<<j<<"]"<<":";
            cin>>x[i][j];
        }
    }
}
 
void Output(int x[N][M],int n, int m,char*name)
    {
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
        {
         cout<<x[i][j]<<'\t';
        }
        cout<<endl;
    }
}
 
void SwapMaxLine(int x[N][M], int n , int m)
{
    int i,j,max;
    for (i=0;i<n;i++);
    {
        max^=max;
        for (j=1;j<m;j++);
 
        if (x[i][j]>x[i][max])
            max=j;
        x[i][max]=1;
}
}
 
int main()
{
 
    int matr[N][M];
    //int jm;
    Input(matr,N,M,"A");
    cout<<endl<<endl;
    Output(matr,N,M,"A");
    cout<<endl<<endl;
    SwapMaxLine(matr,N,M);
    cout<<"Posle preobrazovaniya"<<endl;
    Output(matr,N,M,"A");
    system("pause");
    return 0;   
}
вот программа, не работает, где ошибки ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2012, 19:24     Как найти максимальный элемент в каждой строчке матрицы ?
Посмотрите здесь:

C++ Найти максимальный элемент в каждой строке матрицы
C++ Найти максимальный отрицательный элемент каждой строки матрицы
как в каждой строчке этой матрицы поменять местами 3 и 5 элементы? C++
C++ [Ошибка] Максимальный элемент каждой строки двумерной матрицы
C++ Найти максимальный элемент в каждой строке матрицы
Найти максимальный элемент для каждой диагонали матрицы, параллельной побочной C++
Найти максимальный элемент в каждой строке матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
27.03.2012, 19:31     Как найти максимальный элемент в каждой строчке матрицы ? #2
Цитата Сообщение от Dreamfactor Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void SwapMaxLine(int x[N][M], int n , int m)
{
    int i,j,max;
    for (i=0;i<n;i++);
    {
        max^=max;
        for (j=1;j<m;j++);
 
        if (x[i][j]>x[i][max])
            max=j;
        x[i][max]=1;
}
}
вот программа, не работает, где ошибки ?
Что эта функция должна делать?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
27.03.2012, 19:54     Как найти максимальный элемент в каждой строчке матрицы ? #3
C++
1
2
3
4
5
6
7
8
9
10
int min=-4000000 ,x,y,y1[3][3],i1,i2;
for(i1=0;i1<3;i1++)
for(i2=0;i2<3;i2++)
{
if (y1[i1][i2]) <min
{
min=y[i1][i2];
x=i1;y=i2;
}
}
Maxches
12 / 12 / 3
Регистрация: 27.03.2012
Сообщений: 43
27.03.2012, 20:05     Как найти максимальный элемент в каждой строчке матрицы ? #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (i=0; i<=3; i++) 
{max=A[i][1];
   for (j=0; j<=3; j++)
  {
if (a[i][j]>max) 
{
   max:=a[i][j];
}
     
 
   }
}
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
27.03.2012, 20:41     Как найти максимальный элемент в каждой строчке матрицы ? #5
Цитата Сообщение от Van111 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
int min=-4000000 ,x,y,y1[3][3],i1,i2;
for(i1=0;i1<3;i1++)
for(i2=0;i2<3;i2++)
{
if (y1[i1][i2]) <min
{
min=y[i1][i2];
x=i1;y=i2;
}
}
Если ищем минимальный элемент, то правильно инициализировать min=+4000000
Я обычно в таких случаях задаю начальное min=y1[0][0] для верности
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
27.03.2012, 20:55     Как найти максимальный элемент в каждой строчке матрицы ? #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Если ищем минимальный элемент, то правильно инициализировать min=+4000000
unsigned int min=0x0fffffff
Dekio
Фрилансер
Эксперт C++
5819 / 1217 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.03.2012, 20:56     Как найти максимальный элемент в каждой строчке матрицы ? #7

Не по теме:

Цитата Сообщение от Van111 Посмотреть сообщение
int min=-4000000 ,x,y,y1[3][3],i1,i2;
for(i1=0;i1<3;i1++)
for(i2=0;i2<3;i2++)
{
if (y1[i1][i2]) <min
{
min=y[i1][i2];
x=i1;y=i2;
}
}
Отличный пример быдлокодерства! Браво!




C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <ctime>
 
int main()
{
    std::mt19937 gen(std::time(0));
    std::uniform_int_distribution <> distr(-10, 20);
    std::size_t rows = 10, cols = 8;
    std::vector <std::vector <int>> vec(rows, std::vector <int> (cols, 0));
    std::for_each(vec.begin(), vec.end(), [&gen, &distr] (std::vector <int> &tmp) -> std::vector <int>
    {
        std::generate(tmp.begin(), tmp.end(), [&gen, &distr] () { return distr(gen); });
        std::copy(tmp.begin(), tmp.end(), std::ostream_iterator <int> (std::cout, " "));
        std::cout<<std::endl<<"Max = "<<*std::max_element(tmp.begin(), tmp.end())<<std::endl;
        return tmp;
    });
    return 0;
}
http://liveworkspace.org/code/692abc...cd3d63f47f2eb6
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
27.03.2012, 21:03     Как найти максимальный элемент в каждой строчке матрицы ? #8
Цитата Сообщение от Van111 Посмотреть сообщение
min=-4000000
Админы или модераторы какого х** вы мне отнимаете 38 от репутации за такую маленькую ошибку. тем более код я прям тут в форме набивал и ни сделал ошибок кроме этой.
то есть за двух страничный код ты получаешь +1, а за эту фигню -38. или вы меня хотите специально в минусе держать

Добавлено через 1 минуту
Цитата Сообщение от Dekio Посмотреть сообщение
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <ctime>
int main()
{
* * std::mt19937 gen(std::time(0));
* * std::uniform_int_distribution <> distr(-10, 20);
* * std::size_t rows = 10, cols = 8;
* * std::vector <std::vector <int>> vec(rows, std::vector <int> (cols, 0));
* * std::for_each(vec.begin(), vec.end(), [&gen, &distr] (std::vector <int> &tmp) -> std::vector <int>
* * {
* * * * std::generate(tmp.begin(), tmp.end(), [&gen, &distr] () { return distr(gen); });
* * * * std::copy(tmp.begin(), tmp.end(), std::ostream_iterator <int> (std::cout, " "));
* * * * std::cout<<std::endl<<"Max = "<<*std::max_element(tmp.begin(), tmp.end())<<std::endl;
* * * * return tmp;
* * });
* * return 0;
}
вот это и есть быдло код ни какого понимания процесса(смысла исполняемого кода) а чисто тупое использование функций , устройство которых ты вообще не знаешь
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
27.03.2012, 21:07     Как найти максимальный элемент в каждой строчке матрицы ? #9
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
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
    int n=5; int m=5;
    int **a=new int*[n];
    for (int i=0;i<n;i++) a[i]=new int[m];
    srand(time(NULL));
    for (int i=0;i<n;i++)
        {
         for (int j=0;j<m;j++)
             {
              a[i][j]=rand() % 1000;
              printf("%4d", a[i][j]);
             }
         printf("\n");
        }
    for (int i=0;i<n;i++)
        {
         int max=a[i][0];
         int max_index=0;
         for (int j=1;j<m;j++)
             {
              if (a[i][j]>max)
                 {
                  max=a[i][j];
                  max_index=j;
                 }
             }
         printf("\nStroka %d: max=%d index=%d",i,max,max_index);
        }
    for (int i=0;i<n;i++) delete [] a[i];
    delete [] a;
    getch();
    return 0;
}
go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.03.2012, 21:17     Как найти максимальный элемент в каждой строчке матрицы ? #10
Цитата Сообщение от Van111 Посмотреть сообщение
устройство которых ты вообще не знаешь
Примерная реализация есть на cpusplus.com. Вот, например, для generate
http://www.cplusplus.com/reference/algorithm/generate/
Dekio
Фрилансер
Эксперт C++
5819 / 1217 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.03.2012, 21:52     Как найти максимальный элемент в каждой строчке матрицы ? #11
Цитата Сообщение от Van111 Посмотреть сообщение
вот это и есть быдло код ни какого понимания процесса(смысла исполняемого кода) а чисто тупое использование функций , устройство которых ты вообще не знаешь
Школьник, уймись. Уж поверь, я прекрасно знаю как реализованы функции и как они работают.
Лучше пойди-ка книгу умную почитай, может научишься более менее адекватно программировать.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
27.03.2012, 22:18     Как найти максимальный элемент в каждой строчке матрицы ? #12
Цитата Сообщение от Dekio Посмотреть сообщение
Школьник, уймись. Уж поверь, я прекрасно знаю как реализованы функции и как они работают.
Лучше пойди-ка книгу умную почитай, может научишься более менее адекватно программировать.
твой код длиннее сложнее и дольше выполняется

Добавлено через 2 минуты
плюс по твоим меркам пол форума быдло кодеры

Добавлено через 42 секунды
Цитата Сообщение от Dekio Посмотреть сообщение
Школьник, уймись
и может я на СИ пишу
silent_1991
Эксперт С++
4951 / 3027 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
27.03.2012, 22:44     Как найти максимальный элемент в каждой строчке матрицы ? #13
Van111, ,быдлокод у вас - это как минимум это int min=-4000000, и оно не зависит от языка.

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Я обычно в таких случаях задаю начальное min=y1[0][0] для верности
Это не для верности, это единственно правильный вариант.


Цитата Сообщение от Dekio Посмотреть сообщение
std::for_each
Раз уж используется С++0х, то и нативный for по коллекции не грех использовать
go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.03.2012, 22:51     Как найти максимальный элемент в каждой строчке матрицы ? #14
Цитата Сообщение от silent_1991 Посмотреть сообщение
это единственно правильный вариант.
Хороший вариант, всегда им пользуюсь. Но!
Так а мин значение для данного типа, ведь, можно использовать. Оно хранится в лимитс. Я уверен, вы это знаете
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2012, 22:56     Как найти максимальный элемент в каждой строчке матрицы ?
Еще ссылки по теме:

C++ В каждой строке матрицы найти максимальный элемент и заменить его на противоположный
C++ Найти минимальный элемент во второй строчке квадратной матрицы
Найти в каждой строке матрицы максимальный элемент C++
C++ Для каждой строки матрицы определить минимальный элемент, среди которых найти максимальный
C++ Найти в каждой строке матрицы максимальный элемент

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4951 / 3027 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
27.03.2012, 22:56     Как найти максимальный элемент в каждой строчке матрицы ? #15
go, в общем случае вариант единственно правильный. Потому что в общем случае мы можем и длинные числа использовать, для которых нет понятия "минимальное значение". А я всё же сторонник общих случаев.
Yandex
Объявления
27.03.2012, 22:56     Как найти максимальный элемент в каждой строчке матрицы ?
Ответ Создать тему
Опции темы

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