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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Alisa22
-1 / 1 / 0
Регистрация: 14.06.2010
Сообщений: 75
14.05.2011, 13:44     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали #1
Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2011, 13:44     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали
Посмотрите здесь:

Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали C++
В каждой строке матрицы A (n, n) найти наибольший элемент и поменять его местами с соответствующим диагональным элементом. C++
Найти в каждой строке матрицы наибольший элемент и поменять его местами с элементом главной диагонали C++
C++ Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали
Найти в каждом столбце наибольший элемент и поменять его местами с элементом главной диагонали C++
C++ Поменять местами наибольший элемент строки с элементом главной диагонали в матрице
Найти наибольший элемент в каждой строке матрицы, после чего поменять его местами с диагональным C++
Матрицы: элементы главной диагонали поменять местами с максимальным элементом в каждой строке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2839 / 1776 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
14.05.2011, 13:54     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали #2
Цитата Сообщение от Alisa22 Посмотреть сообщение
Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.
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
#include <iostream>
 
int get_idx_max(int *a, int sz){
  int res = 0;
  for(int i = 0; i < sz; ++i)
    if(a[res] < a[i])
      res = i;
  return res;
}
 
void swap(int &a, int &b){
  int t = a;
  a = b;
  b = t;
}
 
int main(){
  int m[3][3] = {
    1, 2, 3,
    4, 5, 6,
    7, 9, 8
  };
  for(int i = 0; i < 3; ++i){
    swap(m[i][get_idx_max(m[i], 3)], m[i][i]);
  }
  for(int i = 0; i < 3; ++i){
    for(int j = 0; j < 3; ++j)
      std::cout << m[i][j] << ' ';
    std::cout << '\n';
  }
  return 0;
}
ITALIANO
1 / 1 / 1
Регистрация: 24.10.2014
Сообщений: 139
18.12.2015, 16:35     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали #3
Как можно реализовать через класс?

Добавлено через 16 секунд
Данный пример я имею ввиду...

Добавлено через 12 минут
Так как через класс делать эту программу подскажите, ну ооочень надо, буду примного благодарен...

Добавлено через 9 минут
Помогите пожалуйста!!!

Добавлено через 10 минут
Я просто прбовал подставлять значения с другой задачи но не очень получилось...
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
 #include <string.h>
 using namespace std;
 const int u = 5;
class Maximum {              //объявление класса
private:                         //ключевое слово private можно  не писать, т.к. по умолчанию      
int count = 0;;              //режим доступа - private 
 int arr[u][u];
int n,p; 
int a[100]; 
double max;
int k;
int j,i;         
public:                        // открытыми являются методы класса
void init(int count, int n, int p, int arr[u][u], int a[100], double max, int j, int i, int k);
void print(void);             
}; 
//реализация методов класса Person
void Person::init (int count, int n, int p, int arr[u][u], int a[100], double* max, int j, int i, int k)
{strcpy(FIO, FFIO);
Vozrast=FVozrast;
strcpy(Sex, FSex);
strcpy(Telefon, FTelefon);}
void Person::print (void)
{cout<<"Человек:"<<FIO<<"\n";
cout<<"Возраст:"<<Vozrast<<"\n";
cout<<"Пол:"<<Sex<<"\n";
cout<<"Телефон:"<<Telefon<<"\n";}
void main()             // Основная программа
{
Person Obj1;      // Создание объекта Obj1 класса Person
                           // Вызов методод класса Person
Obj1. init("Петров Николай Иванович", 35, "Мужской", "239-10-59");
Obj1.print();
getch(); }
Вот с какого примера я делал.
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 <iomanip>
#include <cstdlib>
#include <ctime>
#include <limits>
using namespace std;
const int u = 5;
 
//srand(time(0));
 
 int main()
{
int count = 0;
int arr[u][u];
int n,p;
int a[100];
int max = numeric_limits<int>::min(); //минимальное значение, представимое типом int на конкретно взятой системе.
int k;
int j,i;
 
{
 
 
 cout << "Matrix: " << endl;
    for (i = 0; i < u; i++) {
        for (j = 0; j < u; j++)
            cout << setw(5) << (arr[i][j] = rand() % 25 - 5); //setw - Задает ширину отображения поля для следующего элемента в потоке.
            cout << endl;
    }
             int k;
    cin >> k;
            if(!(arr[i][j] % k)) //проверяем на кратность
count++;
                if(arr[i][j] > max) max = arr[i][j]; //если элеиент массива больше максимума то мы максимум заменяем
 
 
 
 
  cout << "count = " << count << endl << "max = " << max;
  return 0;
    }
 
 
}
 
 
 
//return 0;
Добавлено через 14 минут
Так что мне делать, помогите пожалуйта, я просто задачу вовремя не сделал и время поджимает я вас очень прошу!!!!

Добавлено через 23 минуты
Я просто не понимаю конструктор...
Yandex
Объявления
18.12.2015, 16:35     Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали
Ответ Создать тему
Опции темы

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