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

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

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

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

02.02.2012, 09:20. Просмотров 486. Ответов 3
Метки нет (Все метки)

Здравствуйте! Если не трудно, не могли бы вы мне немного помочь. Условие задачи такое:
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
//Написать программу в 3 функциях:
//1 функция создаёт двумерный динамический массив и возвращает его через указатель.
//2 функция создаёт одномерный статический массив с размером по количесву строк в двумерном,
//  находит в каждой строке двумерного наибольший элемент и записывает его в одномерный.
//3 функция выводит оба массива на экран и освобождает память.
//P.S. Вызов функций производить через указатели.
#include <QtCore/QCoreApplication>
#include <iostream>
#include <cstdlib>
using namespace std;
int mass1();
int (*pm1)();
int mass2(int **mass, int n);
int (*pm2)(int **mass, int n);
void vivod(int **mass, int n);
void (*pv)(int **mass, int n);
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    pm1=&mass1;
    pm2=&mass2;
    pv=&vivod;
    pm1();
    pm2(**mass, n);
    pv(**mass, n);
    return a.exec();
}
int pm1();
{
    int n, x, i, j;
        cout <<"Vvedite poryadok matritsi: ";
        cin >>n;
    int **mass=new int*[n];
    for(x=0;x<n;x++)
        mass[x]=new int[n];
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        mass[i][j]=rand()%9;
    }
}
int pm2(int **mass, int n)
{
    int temp=0;
    int mass2[n];
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        if(mass[i][j]>temp)
            temp=mass[i][j];
        temp=0;
    }
Вот половину уже сделал, не могу понять, как сейчас также циклично присвоить это наибольшее значение одномерному массиву...

Добавлено через 18 минут
Только с указателями какой то косяк... никак не могу понять, как их надо правильно писать...

Добавлено через 2 часа 17 минут
Уже не надо,я смог сделать, теперь никак не могу разобраться с указателями, что именно неверно...

Вот новый код, не работают указатели...
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
//Написать программу в 3 функциях:
//1 функция создаёт двумерный динамический массив и возвращает его через указатель.
//2 функция создаёт одномерный статический массив с размером по количесву строк в двумерном,
//  находит в каждой строке двумерного наибольший элемент и записывает его в одномерный.
//3 функция выводит оба массива на экран и освобождает память.
//P.S. Вызов функций производить через указатели.
#include <QtCore/QCoreApplication>
#include <iostream>
#include <cstdlib>
using namespace std;
int mass1();
int mass2(int **mass, int n);
void vivod(int **mass, int n);
int (*pm1)();
int (*pm2)(int **mass, int n);
void (*pv)(int **mass, int n);
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    pm1=&mass1;
    pm2=&mass2;
    pv=&vivod;
    pm1();
    pm2(mass, n);
    pv(mass, n);
    return a.exec();
}
int pm1()
{
    int n, x, i, j;
        cout <<"Vvedite poryadok matritsi: ";
        cin >>n;
    int **mass=new int*[n];
    for(x=0;x<n;x++)
        mass[x]=new int[n];
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        mass[i][j]=rand()%20;
    }
    return **mass;
}
int pm2(int **mass, int n)
{
    int mass2[n];
    int max, i, j;
    for(i=0;i<n;i++)
    {
        max=mass[i][0];
        for(j=0;j<n;j++)
        {
            if(max<mass[i][j])
                max=mass[i][j];
            mass2[i]=max;
        }
    }
    for(i=0;i<n;i++)
        cout <<mass2[i] <<" ";
    return **mass;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2012, 09:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти в каждой строке матрицы наибольший элемент и записать его в одномерный массив (C++):

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

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

Найти наибольший элемент в каждой строке матрицы, после чего поменять его местами с диагональным - C++
Во входном файле in.txt задана квадратная матрица из целых чисел, например: 1 7 4 3 6 3 2 0 2 0 8 7 4 5 7 6

Найти в каждой строке матрицы наибольший элемент и поменять его местами с элементом главной диагонали - C++
Задание: Дана целочисленная квадратная матрица. Найти в каждой стро*ке наибольший элемент и поменять его местами с элементом глав*ной...

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

Найти наибольший элемент двумерного массива в каждой его строке - C++
Дан масив из n x m элементов.Найти наибольший элемент массива в каждой строке #include &lt;iostream&gt; #include &lt;time.h&gt; #include...

3
NoMasters
Псевдослучайный
1764 / 1107 / 73
Регистрация: 13.09.2011
Сообщений: 3,143
02.02.2012, 11:21 #2
Я даже не догадываюсь, на какое поведение ты рассчитывал... Зачем тебе указатели на функции, не инициализируя которые, ты пытаешься по ним что-то вызвать? Я догадываюсь, что имелись в виду прототипы, но откуда там тогда звёздочки? И зачем ты передаешь функциям, которым нужны int**, указатели на другие функции? Ну и, наконец, зачем тут QCoreApplication?
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
02.02.2012, 11:27 #3
C++
1
int (*pm2)
не делай так
+ в qt не обязательно все время делать QCoreApplication
можно в .pro написать строку CONFIG += console


++ посмотри тему эту
0
HeqpuJIuM
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
02.02.2012, 13:50  [ТС] #4
Уже всё сделал, спасибо
Могу скинуть код готовый, если кому интересно посмотреть на эту жуть...
0
02.02.2012, 13:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2012, 13:50
Привет! Вот еще темы с ответами:

Найти наибольший элемент каждой пары из массива А и записать их в новый массив - C++
Найти наибольший элемент каждой пары из массива А и записать их в новый массив. Получить из него массив четных положительных чисел

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали - C++
Двумерные массивы, условие в заголовке! Заранее спасибо)

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали - C++
Есть целочисленная квадратная матрица.Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали - C++
Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.


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

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

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