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

Обработка матриц - С++ - C++

06.12.2016, 01:58. Просмотров 156. Ответов 2
Метки нет (Все метки)

Вот задача нужно решить - С++.
Не могу решить, не получается...

Найти наибольший и наименьший элементы
матрицы и поменять местами строки, которые
их содержат. Имя матрицы и размеры R(K,N), условие и ограничения K<=7 N<=5

Попробуйте исправить...

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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>  
#include <windows.h>
#include <stdlib.h>
using namespace std;
int main()
{ 
    SetConsoleOutputCP(1251);
    const int k=7,n=5;
    int K,N;
    int R[k][n];
    cout<<"Введите размерность матрицы K,N ";
    cin>>K>>N;
    cout<<"Введите элементы матрицы"<<k<<"x"<<n<<":\n";
    for(int i = 0; i < k; ++i)
        for(int j = 0; j < n; ++j)
            R[i][j]=rand()%50+1;
    cout<<"Матрица:\n";
for(int i = 0; i < k; ++i)
{ int min=R[0][0],max=R[0][0],nMax[2]={0},nMin[2]={0};
        for(int j = 0; j < n; ++j)
          cout<<R[i][j]<<" ";
        cout<<'\n';
 
           for(int j=0;j<n;j++) { 
              if(R[i][j]>max)
              { max=R[i][j];nMax[0]=i; nMax[1]=j;}
                   
              if(R[i][j]<min)
              { min=R[i][j]; nMin[0]=i; nMin[1]=j;}
              cout<<"Наибольший элемент матрицы max="<<max<<'\n';
 
              cout<<"Наименьший элемент матрицы min="<<min<<'\n';
  }
  
}
  _getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2016, 01:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обработка матриц - С++ (C++):

Обработка матриц
Уважаемые форумчане помогите с задачей. Определить максимальный елемент...

Обработка матриц
Имеется код! void maxToArr(int ar,int matr, int nRow, int nCol){ int...

Обработка матриц
Помогите дописать код программы вот условие:Вычислить сумму и число элементов...

Обработка матриц в С++
Помогите мне сделать программу. Нужно ранспонировать матрицу и вывести на...

Обработка матриц
Добрый день, помогите. Дана целочисленная матрица MxN.Найти...

Обработка матриц
Дан двумерный массив. В каждой строке все его элементы, не равные нулю,...

2
neketsh
13 / 13 / 10
Регистрация: 23.08.2015
Сообщений: 131
Завершенные тесты: 1
06.12.2016, 02:40 #2
Есть такая кнопочка "С++". ТЫкаешь и вставляешь в неё свой код. И он становиться ясным и понятным.

Добавлено через 6 минут
Что то странное ты написал.
Ты хоть Enter нажимай, когда код пишешь.

Тут надо уже использовать K и N, а не k и n

C++
1
2
3
for(int i = 0; i < K; ++i)
    for(int j = 0; j < N; ++j)
    R[i][j]=rand()%50+1;
Добавлено через 11 минут
Смотри, твой код почти нечитабелен. Вот примерно поиск:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int min =  arr[0][0];
    int max =  arr[0][0];
    int nMax = arr[0][0];
    int nMin = arr[0][0];
    for(int i = 0; i < K; i++)
    {
        for(int j = 0; j < N; J++)
        {
            if(arr[i][j] < min)
            {
                min = arr[i][j]
                nMin = i;   //нужна только строка
            }
            if(arr[i][j] > max)
            {
                max = arr[i][j];
                nMax = i;   //нужна только строка
            }
        }
    }//for
Мы нашли минимумы, максимумы и номер строки.
Далее - заменяем.
C++
1
2
3
4
5
6
7
8
9
10
11
int temp = *new int[n]; //динамический массив, временный
    for(int j = 0; j < N; j++)
    {
        temp[j] = arr[nMin][j];
    }
    
    for(int j = 0; j < N; j++)  //заменяем
    {
        arr[nMin][j] = arr[nMax][j];
        arr[nMax][j] = temp[j];
    }
Добавлено через 2 минуты
Надеюсь всё понятно как и что тут делает?

Добавлено через 1 минуту
Вот так делать не нужно. Лучше потрать немного времени, но код будет понятнее тебе самому, как минимум, после определённого времени:
C++
1
{ min=R[i][j]; nMin[0]=i; nMin[1]=j;}
C++
1
int min=R[0][0],max=R[0][0],nMax[2]={0},nMin[2]={0};
C++
1
max=R[i][j];nMax[0]=i; nMax[1]=j;
Добавлено через 8 минут

Не по теме:

Чёрт! У меня завтра зачёты а я тут сижу

1
Vendetta888
0 / 0 / 1
Регистрация: 28.10.2016
Сообщений: 16
06.12.2016, 17:42  [ТС] #3
neketsh, Спасибо большое, что помог доделать прогу)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2016, 17:42
Привет! Вот еще темы с решениями:

Обработка матриц в с++
даны матрицы D размерностью m*n, E n*k и число a. найти значение выражения:...

Обработка матриц
Помогите пожалуйста! Написать процедуру, которая принимает на входе двумерную...

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

Обработка матриц
В матрице Z(5,6) первый отрицательный элемент каждого столбца заменить суммой...


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

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

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