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

как дописать задачку - C++

Восстановить пароль Регистрация
 
Dimonik92
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 26
21.11.2013, 13:08     как дописать задачку #1
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
//Задана матрица размером М х N. Найти максимальный по модулю эле¬мент матрицы. 
//Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен
//на пересечении t-й строки и k-го столбца.
 
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include "conio.h"
#include <stdio.h>
#include "locale.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{setlocale(LC_ALL, "Russian");
int m[10][10];
int t,k;
 
 
 
srand((unsigned)time(NULL));
printf("Массив: \n");
for(int i = 0; i < 10; i++)
    {
    for(int j = 0; j < 10; j++)
        {
        m[i][j] = rand()%10;
    
        printf("%i ",m[i][j]);
        }
    printf("\n");
    }   int max = m[0][0];
    for(int i = 0; i < 10; i++)
    {
        for(int j = 0; j < 10; j++)
        
        {
            if(m[i][j]>max) max=m[i][j];
            
        }       
    }
printf("максимальный элемент: %d \n",max);
printf("Введите координаты:");
scanf_s("%i %i ",&t,&k);
m[t-1][k-1]=max;
for(int i = 0; i < 10; i++)
    {
        for(int j = 0; j < 10; j++)
        
        {
            
            printf("%i ",m[i][j]);
            
        }       
        printf("\n");
    }
    _getch();
 
     system("PAUSE");
     return 0;
}
как мне вывести тот же массив только максиммум поместить по введенным координатам,а то что стоял по введенным координатам на место максимума
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
21.11.2013, 13:20     как дописать задачку #2
Dimonik92,
C++
1
2
3
4
5
6
7
8
9
10
11
12
if (k>imax+1)
{
for (auto i=k-1; i<k; i++)
{
for (auto j=0; j<m; j++)
{
int intserve=m[i][j];
m[i][j]=m[i+1][j];
m[i+1][j]=intserve;
}
}
}
Добавлено через 56 секунд
Для случая, если строка c максимальным элементом выше строки k
Dimonik92
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 26
21.11.2013, 13:29  [ТС]     как дописать задачку #3
Angeline, но мы не знаем,откуда он возьмет максимум...в чем вся проблема,т.е. он может быть где угодно,т.к. матрица заполнчяется рандомно,и каждый раз по-разному!
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
21.11.2013, 13:33     как дописать задачку #4
Dimonik92, неужели сложно найти максимум в матрице?
C++
1
for (auto i=0; i<n; i++){for (auto j=0; j<m; j++){if (abs(matrica[i][j])>max){max=abs(matrica[i][j]);maxi=i;maxj=j;}}}
Dimonik92
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 26
21.11.2013, 15:28  [ТС]     как дописать задачку #5
Angeline, дак мне как бы не максимум прошу найти,а поменять местами максимальный элемент с тем,координаты которого я введу,чтобы туда переместить максимум
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
21.11.2013, 15:51     как дописать задачку #6
Тебе осталось переписать этот кусочек кода для случая, когда надо поднять вверх и для вправо-влево.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
21.11.2013, 16:05     как дописать задачку #7
Вам нужно запоминать не максимальное значения, а его координаты.
Raali
21.11.2013, 16:14
  #8

Не по теме:

Цитата Сообщение от Angeline Посмотреть сообщение
for (auto j=0; j<m; j++)
по моему тут быстрее написать int чем auto

Angeline
21.11.2013, 17:46
  #9

Не по теме:

Raali, признаться со злости старалась написать непонятнее

HidForce
54 / 54 / 13
Регистрация: 17.11.2012
Сообщений: 1,102
21.11.2013, 18:07     как дописать задачку #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
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
int main() 
{
    setlocale (LC_ALL, "RUS");
    srand(time(0));
 
    int Matrix[10][10];
    int MaxEl; // значение максимального элемента матрицы
    int TCoordMaxEl, KCoordMaxEl; // координаты максимального элемента матрицы
    int t, k; // координаты, вводимые пользователем
    int aux; // вспомагательная переменная
 
    //заполняем матрицу рандомными элементами
    for (int i = 0; i < 10; i++)
        for (int j = 0; j < 10; j++)
        {
            Matrix[i][j] = rand()%10;
        }
 
    //ищем значение максимального элемента матрицы и его координаты
    MaxEl = Matrix[0][0];
    for (int i = 0; i < 10; i++)
        for (int j = 0; j < 10; j++)
        {
            if (Matrix[i][j] > MaxEl)
            {
                MaxEl = Matrix[i][j];
                TCoordMaxEl = i;
                KCoordMaxEl = j;
            }
        }
 
    cout << "Исходная матрица равна: " << endl;
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)   
        {
            cout << setw(3) << Matrix[i][j];
        }
        cout << endl;
    }
 
    cout << "Максимальный элемент матрицы равен " << MaxEl << endl;
    cout << "Координаты максимального элемента: " << endl;
    cout << TCoordMaxEl + 1 << " строка" << endl; 
    cout << KCoordMaxEl + 1 << " столбец" << endl; 
 
    cout << endl << "Введите номер строки и столбца, куда нужно переставить максимальный элемент: " << endl;
    cin >> t >> k;
    cout << endl;
    
    //меняем необходимые элементы местами
    aux = Matrix[t-1][k-1]; 
    Matrix[t-1][k-1] = MaxEl;
    Matrix[TCoordMaxEl][KCoordMaxEl] = aux;
 
    cout << "Полученная матрица равна: " << endl;
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)   
        {
            cout << setw(3) << Matrix[i][j];
        }
        cout << endl;
    }
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2013, 13:54     как дописать задачку
Еще ссылки по теме:

C++ как изобразить декартову систему координат ?немогу дорешать задачку
как дописать программу C++
C++ Как дописать программу

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

Или воспользуйтесь поиском по форуму:
Dimonik92
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 26
24.11.2013, 13:54  [ТС]     как дописать задачку #11
Angeline, хаха..мда я в шоке
Yandex
Объявления
24.11.2013, 13:54     как дописать задачку
Ответ Создать тему
Опции темы

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