Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
druger
0 / 0 / 5
Регистрация: 18.09.2011
Сообщений: 57
#1

Матрица_формирование новой матрицы - C++

12.02.2012, 12:48. Просмотров 402. Ответов 2
Метки нет (Все метки)

Вот условие задачи:Составить прогу,которая получает матрицу Х размерностью mxn. Прога в каждой строке определяет наименьший элемент и его индексы и формирует из этих чисел матрицу, расположив в первом её столбце наименьшие элементы строк, а во 2 и 3 столбцах их индексы.
Я не уверен во 2 функции. Мне кажется у меня там полный бред. Помогите разобраться. И если есть ещё какие-то недочёты, пожайлуста укажите что не так
Код
#include <iostream.h>
#include <conio.h>

void MinElement (int A[][M];int n; int m; int &imin; int &jmin)
{
for (int i=0; i<n); i++)
   {
   int min=A[i][0];
   for (j=0; j<m; j++)
     {
     if (min>a[i][j])
       {
       min=A[i][j];
       imin=i;
       jmin=j;
}  } } }

void NewMatr (int B[][3]; int n)
 {
 for (int x=0; x<n; x++)
 B[x][o]=min;
 for (int x=0; x<n; x++)
 for (int y=1; y<2; y++)
 B[x][2]=imin;
 B[x][3]=jmin;
 }
void input (int A[][M])
 {
 cout<<"vvedite matricy N*M"<<endl;
 for (int i=0; i<N; i++)
 for (int j=0; j<M; j++)
 cin>>A[N][M];

void output (int B[][3])
 {
 for (int x=0; x<N; x++)
 for (int y=0; y<M; y++)
 cout<<B[N][3]<<endl;

void main ()
 {
 clrscr ();
 int A[N][M], B[N][3];
 input(A);
 cout<<endl;
 cout<<"min,imin,jmin"<<endl;
 MinElement(A,n,m,imim,jmin);
 cout<<"Matr B"<<endl;
 output (B);
 getch();
 }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 12:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Матрица_формирование новой матрицы (C++):

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

Матрицы[макс. элементы, получение новой матрицы]
6. В данной квадратной целочисленной матрице порядка 17 указать индексы всех...

Построение новой матрицы по части заданой матрицы
Доброго времени суток, уважаемые форумчане!:) Не могу реализовать свою идею,...

Транспонировать квадратную матрицу, используя только оператор for. Новой матрицы не создавать. Вывести исходную и транспониро-ванную матрицы
Транспонировать квадратную матрицу, используя только оператор for. Новой...

получение новой матрицы
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу...

Функция формирования новой матрицы
Помогите составить функцию NewMatr, у меня она не правильная. Вот условие...

2
MrCold
859 / 757 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
13.02.2012, 10:26 #2
Лучший ответ Сообщение было отмечено druger как решение

Решение

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 <time.h>
#define M 3
#define N 3
// заполнить массив
void Set(int myarray[][N]){
    for(int i = 0;i < M; ++i){
        for(int j = 0;j < N; ++j){
            myarray[i][j] = 1 + rand() % 100;
            }}}
// вывести на экран массив
void Out(int myarray[][N]){
        for(int i = 0;i < M; ++i){
            std::cout <<  "\n\n";
           for(int j = 0;j < N; ++j){
     std::cout << myarray[i][j] << "\t";}
        }}
//  минимум num строки
void minOut(int myarray[][N],int num){
    int min = myarray[num][0];
    int ind_i = 0;
    int ind_j = 0; 
        for(int i = 0;i < M; ++i){
            std::cout <<  "\n";
           for(int j = 0;j < N; ++j){
               if(min > myarray[num][j]){
     min = myarray[num][j];
             ind_i = num;// для номера строки
             ind_j = j;}}// для номера столбца
        }
std::cout << min <<"\t" << ind_i << "\t" << ind_j;
}
int main()
{   srand(unsigned( time(NULL)));
int arr[M][N];
Set(arr);
std::cout <<"\nBase matrix :" ;
Out(arr);
std::cout <<"\n\n\nNew matrix :" ;
// заполняем каждый столбец 
// 1 столбец    минимальными значениями
//   2 и 3  индексами . например arr[0][0] 2 столбец - 0  3 столбец - 0
for(int i = 0;i < M; ++i){
    minOut(arr,i) ;
}
std::cout << "\n\n\n";
system("pause");
}
1
druger
0 / 0 / 5
Регистрация: 18.09.2011
Сообщений: 57
13.02.2012, 20:08  [ТС] #3
MrCold, а можно как-нибудь по проще написать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2012, 20:08
Привет! Вот еще темы с решениями:

Создать новую матрицу, скопировав её из исходной; заполнить 30% новой матрицы нулями в случайном порядке
Задание 3 скопировать 2-мерный массив и 30% чисел в нем заполнить ...

Определить функцию получения новой матрицы путем умножения всех ее элементов на максимальный элемент
Создать два класса: вектор типа double размером m и матрицу типа double...

Подсчитать сколько элементов массива в каждой новой строке матрицы имеет значение "-1"
Всем привет такая проблема: из двумерного массива сделал матрицу типа: 1-1 0...

Процедура ввода квадратной матрицы, транспонирования матрицы и вывода новой матрицы
1.Написать программу с использование собственного модуля, который должен...


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

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

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