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

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

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

Минимальный массив из кв. матрицы - C++

07.12.2012, 10:54. Просмотров 309. Ответов 1
Метки нет (Все метки)

Создать одномерный массив из минимальных элементов каждой строки данной квадратной матрицы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2012, 10:54     Минимальный массив из кв. матрицы
Посмотрите здесь:

Решить уравнение p*x2+d*x+r=0, где p - минимальный элемент матрицы A; d –минимальный элемент матрицы B; r - минимальный элемент матрицы C. - C++
Заданы три матрицы A, B, C. Решить уравнение p*x2+d*x+r=0, где p - минимальный элемент матрицы A; d –минимальный элемент матрицы B; r -...

Сформировать одномерный массив как столбец матрицы,содержащий минимальный элемент на побочной диагонали - C++
2. Сформировать одномерный массив как столбец матрицы, содержащий минимальный элемент на побочной диагонали.

Сформировать одномерный массив Х из положительных элементов матрицы А, найти минимальный элемент массива Х и его номер - C++
Доброго всем времени суток) никак не могу создать массив из матрицы( кто поумнее меня , помогите плиз) Вот задание: ...

Минимальный элемент матрицы - C++
народ помогите плз за рание большое спасибо При решении задач инициализируйте значения переменных с помощью конструктора. - Найдите...

Найти минимальный элемент матрицы - C++
Плиз, помогите, учить некогда, а надо в понедельник сдать рабочую программу, темы пропустил. Короче: есть квадратный массив, вводится...

Найти минимальный элемент матрицы - C++
Дана матрица размером 4 на 3. Найти минимальный элемент матрицы. (Элементы матрицы не рандомные ,а заранее заданные ,числа любые....

Найти минимальный элемент матрицы - C++
Здравствуйте! Помогите пожалуйста решить одну задачу?) Нужно найти минимальный элемент матрицы, а потом в строке где есть min найти...

Максимальный и минимальный элементы матрицы. - C++
Нужна помощь. Надо написать программу, которая находит максимальный и минимальный элементы матрицы, а после поместить их на первое и...

Найти минимальный элемент матрицы - C++
Дана квадратная матрица А порядку n. Составить программу, которая находит минимальный элемент и все элементы, расположенные в одной строке...

Найти минимальный элемент упорядоченной матрицы - C++
#include <iostream> using namespace std; int main() { int n, m, imin, min, h, s, j, i, a; cout << "n = ";...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fNt
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 1
07.12.2012, 14:20     Минимальный массив из кв. матрицы #2
Вот как это вышло у меня...пытаюсь вспомнить С++
Попытка номер один
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
// объявляем переменные
    int x;
    cout<<"Введите размерность матрицы: ";
    cin>>x;
 
// на основе введеного числа формируем квадратную матрицу
    int array[x][x];
// и формируем одномерный массив, где будут минимальные элементы из каждой строки
    int min_array[x];
 
// заполняем матрицу случайными числами от 0 до 9
    srand(time(0));
 
    for (int i=0; i<x; i++)
        {
            for (int j=0; j<x; j++)
                {
                    array[i][j]=rand()%10;
                }
        }
 
// выводим исходную матрицу на экран
cout<<"\nИсходная матрица:\n";
    for (int i=0; i<x; i++)
        {
            for (int j=0; j<x; j++)
                {
                    cout<<array[i][j]<<" ";
                    if (j==x-1) cout<<"\n";
                }
        }
 
// просматримаем исходную матрицу
// и сортируем методом "пузырька"
// по возрастанию в строках
 
    for (int k=0; k<x; k++)
        {
            for (int i=x-1; i>0; i--)
                {
                    for (int j=0; j<i; j++)
                        {
                            if (array[k][j]>array[k][j+1])      //условие сортировки
                            {
                            int tmp=array[k][j];                //сортируем при помощи временной переменной
                            array[k][j]=array[k][j+1];
                            array[k][j+1]=tmp;
                            }
                        }
                }
        }
 
// теперь все нужные нам минимальные элементы
// стоят на 0-х местах в матрице
// перегоняим их в одномерный массив
    for (int i=0; i<x; i++)
        {
            min_array[i]=array[i][0];
        }
 
// выводим одномерный массив минимальных элементов
cout<<"\nОдномерный массив с минимальными элементами строк исходной матрицы:\n";
    for (int i=0; i<x; i++)
        {
            cout<<min_array[i]<<" ";
        }
 
 
    return 0;
}


Добавлено через 1 час 54 минуты
Вот исходник после отпимизации кода.
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
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{//объявляем переменные
    int x;
    cout<<"\nВведите размерность матрицы: ";
    cin>>x;
// на основе введеного числа формируем квадратную матрицу
    int array[x][x];
// и формируем одномерный массив, где будут минимальные элементы из каждой строки
    int min_array[x];
// заполняем матрицу случайными числами от 0 до 9
// и выводим исходную матрицу на экран
    srand(time(0));
    cout<<"\nИсходная матрица:\n";
    for (int i=0; i<x; i++)
        {for (int j=0; j<x; j++)
                {array[i][j]=rand()%10;
                 cout<<array[i][j]<<" ";
                 if (j==x-1) cout<<'\n';
                }
        }
// просматримаем исходную матрицу
// и сортируем методом "пузырька" по возрастанию в строках,
// т.к. после 1 прогона строки - 1-й элемент становится на своё место.
// Т.о. сразу записываем в одномерный массив и выводим тут же на экран
cout<<"\nОдномерный массив с минимальными элементами строк исходной матрицы:\n";
    for (int k=0; k<x; k++)
        {
            for (int i=x-1; i>0; i--)
                {
                    for (int j=0; j<i; j++)
                        {
                            if (array[k][j]>array[k][j+1])      //условие сортировки
                            {
                             int tmp=array[k][j];                //сортируем при помощи временной переменной
                             array[k][j]=array[k][j+1];
                             array[k][j+1]=tmp;
                            }
                        };
                    min_array[k]=array[k][0];
                };
            cout<<min_array[k]<<" ";
        }
    return 0;
}

Только вот никак не получается убрать еще один цикл, всю голову сломал...
Ведь после прогона всей строки - 1-й элемент становится на своё место,
До:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (int k=0; k<x; k++)
        {
            for (int i=x-1; i>0; i--)
                {
                    for (int j=0; j<i; j++)
                        {
                            if (array[k][j]>array[k][j+1])
                            {
                             int tmp=array[k][j];
                             array[k][j]=array[k][j+1];
                             array[k][j+1]=tmp;
                            }
                        };
                    min_array[k]=array[k][0];
                };
            cout<<min_array[k]<<" ";
        }

Убираем цикл по i - получаем
После:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for (int k=0; k<x; k++)
        {
          for (int j=0; j<x-1; j++)
                        {
                            if (array[k][j]>array[k][j+1])
                            {
                             int tmp=array[k][j];
                             array[k][j]=array[k][j+1];
                             array[k][j+1]=tmp;
                            }
                        };
           min_array[k]=array[k][0];
           cout<<min_array[k]<<" ";
        }

что не хватает по одному прогону в строке. Ведь где-то рядом отгадка, но не лезет в голову.
Ответ Создать тему
Опции темы

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