0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
1

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

02.02.2012, 09:20. Показов 909. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2012, 09:20
Ответы с готовыми решениями:

В каждой строке матрицы найти наибольший элемент и записать его в линейный массив
Создать двумерный массив случайных чисел А. В каждой строке этого массива найти наибольший элемент...

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

Массив: Найти в каждой строке матрицы наибольший элемент и поменять его местами с элементом главной диагонали.
помогите пожалуйста решить две задачи и если не трудно нарисовать блок схемы 1. Вставить в...

В каждой строке матрицы найти наибольший элемент и заменить его на 1
Дана матрица, заполненная буквами английского алфавита (матрица пусть 5 на 5). Наибольший элемент...

3
Псевдослучайный
1942 / 1142 / 97
Регистрация: 13.09.2011
Сообщений: 3,213
02.02.2012, 11:21 2
Я даже не догадываюсь, на какое поведение ты рассчитывал... Зачем тебе указатели на функции, не инициализируя которые, ты пытаешься по ним что-то вызвать? Я догадываюсь, что имелись в виду прототипы, но откуда там тогда звёздочки? И зачем ты передаешь функциям, которым нужны int**, указатели на другие функции? Ну и, наконец, зачем тут QCoreApplication?
0
Кошковед
519 / 507 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
02.02.2012, 11:27 3
C++
1
int (*pm2)
не делай так
+ в qt не обязательно все время делать QCoreApplication
можно в .pro написать строку CONFIG += console


++ посмотри тему эту
0
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
02.02.2012, 13:50  [ТС] 4
Уже всё сделал, спасибо
Могу скинуть код готовый, если кому интересно посмотреть на эту жуть...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2012, 13:50

Для матриц определить в каждой строке минимальный элемент и записать его в одномерный массив
ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ В ПАСКАЛЕ НА ПОДПРОГРАММЫ. &quot;Даны две матрицы А и B (N&lt;=10,M&lt;=15). Для...

Массивы. В каждой строке найти наибольший элемент, записать в линейный массив
1) Создать двумерный массив случайных чисел A . в каждой строке этого массива найти наибольший...

Найти наибольший элемент каждой строки матрицы и записать их в массив B
нужно задать матрицу C размером 6x7.Найти наибольший элемент каждой строки матрицы и записать их в...

В каждой строке матрицы найти наибольший элемент и заменить его соответствующим диагональным элементом
В каждой строке матрицы найти наибольший элемент и заменить его соответствующим диагональным...


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

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

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