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

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

Восстановить пароль Регистрация
 
HeqpuJIuM
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
02.02.2012, 09:20     Найти в каждой строке матрицы наибольший элемент и записать его в одномерный массив #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
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2012, 09:20     Найти в каждой строке матрицы наибольший элемент и записать его в одномерный массив
Посмотрите здесь:

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали C++
В каждой строке матрицы A (n, n) найти наибольший элемент и поменять его местами с соответствующим диагональным элементом. C++
Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали C++
C++ Найти наибольший элемент двумерного массива в каждой его строке
Одномерный массив. Найти наибольший элемент массива и поменять его местами с наименьшим элементом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
02.02.2012, 11:21     Найти в каждой строке матрицы наибольший элемент и записать его в одномерный массив #2
Я даже не догадываюсь, на какое поведение ты рассчитывал... Зачем тебе указатели на функции, не инициализируя которые, ты пытаешься по ним что-то вызвать? Я догадываюсь, что имелись в виду прототипы, но откуда там тогда звёздочки? И зачем ты передаешь функциям, которым нужны int**, указатели на другие функции? Ну и, наконец, зачем тут QCoreApplication?
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
02.02.2012, 11:27     Найти в каждой строке матрицы наибольший элемент и записать его в одномерный массив #3
C++
1
int (*pm2)
не делай так
+ в qt не обязательно все время делать QCoreApplication
можно в .pro написать строку CONFIG += console


++ посмотри тему эту
HeqpuJIuM
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
02.02.2012, 13:50  [ТС]     Найти в каждой строке матрицы наибольший элемент и записать его в одномерный массив #4
Уже всё сделал, спасибо
Могу скинуть код готовый, если кому интересно посмотреть на эту жуть...
Yandex
Объявления
02.02.2012, 13:50     Найти в каждой строке матрицы наибольший элемент и записать его в одномерный массив
Ответ Создать тему
Опции темы

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