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

Массив: Описать функцию swap(A,B), меняющую местами максимальные элементы матриц А и В. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переставить строки матрицы в порядке увеличения сумм элементов http://www.cyberforum.ru/cpp-beginners/thread853808.html
Ребят помогите,нужно переставить строки массива в порядке увеличения сумм элементов#include <stdio.h> #include <stdlib.h> int main() { int m,n,i,j; printf("VVedite m = "); ...
C++ Метод простых итераций! опять я ... и опять нужно помочь перевести на язык С++...Заранее спасибо... Прога на Паскале... Uses Crt; Var Eps,X0,Y0,X1,Y1,T1,T2,D:real; key:char; label 10; Begin... http://www.cyberforum.ru/cpp-beginners/thread853801.html
Пересечения круга и отрезка C++
Нужно сделать функцию пересечения кола и отрезка, известны координаты двух точек отрезка, координаты центра кола и радиус.
Метод обратной матрицы C++
Я писал свою программу давно на Паскале.. щас же мне она нужна на языке С++... може кто поможет перевести на С? заранее спасибо...всех с праздниками ( и пожалуйста напишите комментарии)...)) Вот...
C++ выделение из строки s m слов, начиная от слова номер n http://www.cyberforum.ru/cpp-beginners/thread853773.html
выделение из строки s m слов, начиная от слова номер n. без использования библиотеки <string.h>
C++ Замена символа Здравствуйте!!! помогите решить задачку! Дано строка символов оттуда надо убрать букву "А" и вместо буквы "Е" заменить буквой "Э". Заранее СПАСИБО! подробнее

Показать сообщение отдельно
herzen2011
-1 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 34

Массив: Описать функцию swap(A,B), меняющую местами максимальные элементы матриц А и В. - C++

01.05.2013, 23:00. Просмотров 2933. Ответов 6
Метки (Все метки)

Надо исправить программу чтобы заработала.
У самой уже ничего не получается=((
Описать функцию swap(A,B), меняющую местами максимальные элементы матриц А и В.
Вот что у меня получается:

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream.h>
#define n 2//размерность массивов
 
int CreateMas1(int n)//функция котороя создает массив 1
{
    int *mas1 = new1 int[n][n];//создаем массив размерностью N  
    return mas1;//возращаем массив
}
 
int CreateMas2(int n)//функция котороя создает массив 2
{
    int *mas2 = new2 int[n][n];
    return mas2;//возращаем массив
 
}
    
void input(int n,int *new1,int *new2)//вводим данные в массивы
{
    &mas1={{1,2},{3,4}};
    &mas2={{5,6},{7,8}};
}
 
void output(int n,int *new1,int *new2)//выводим их на экран
{
    for(int i1=0;i1<n;i1++)
        for( int j1=0;j1<n;j1++)
        cout<<new1[i1][j1]<<" ";//выводим с пробелами
        cout<<endl;//отступаем строку для красоты
    for(int i2=0;i2<n;i2++)
        for( int j2=0;j2<n;j2++)
        cout<<new2[i2][j2]<<" ";//выводим с пробелами
        cout<<endl;//отступаем строку для красоты
}
 
void swap(int n,int *new1,int *new2)//функция котороя ищет 1 максимум и 2 максимум,потом меняет их местами
{
    
    int max1,max2;//переменные 1 максимума и 2 максимума
    int temp1,temp2;//вспомогательные переменные для замены местами
    int i,j;//счетчик
    int k=0,s=0,z=0,r=0;//индексы обязательно равны 0 так может быть что максимум 1 или максимум 2 будет первым
    
    max1 = new1[0][0];//присваиваем 1 максимальному первый элемент матрицы
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        if(new1[i][j] > max1)//если текущий элемент матрицы больше максимального то:
        {
            max1 = new1[i][j];//присваиваем максимальному текущий
            k = i;
            s = j;//индексам присваиваем текущую позицию матрицы
        }
    
    max2 = new2[0][0];//тоже самое только со 2 максимумом
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        if(new2[i][j] > max2)
        {
            max2 = new2[i][j];
            z = i;
            r = j;
        }
 
    cout<<"max1 = "<<max1<<" position = "<<k<<s<<endl;//выводим максимальные элементы и номера их позиций в массивах
    cout<<"max2 = "<<max2<<" position = "<<z<<r<<endl;
 
    temp1 = new1[k][s];//меняем их местами с помощью ТЕМП1
    new1[k][s] = new2[z][r];
    new2[z][r] = temp1;
 
    temp2 = new2[z][r];//меняем их местами с помощью ТЕМП2
    new2[z][r] = new1[k][s];
    new1[k][s] = temp2;
 
    cout<<"\nYour matr after swap: "<<endl;//ваша матрица после сортировки
    output(n,new1,new2);//использует функцию вывода(смотри выше)
    cout<<"max1 = "<<max1<<" position = "<<z<<r<<endl;//просто меняем индексы местами:)
    cout<<"max2 = "<<max2<<" position = "<<k<<s<<endl;
}
 
 
 
 
void main()//главная
{
    int *mas1 = CreateMas1(n);//создаем массив с помощью функции CreateMas размерностью N
    input(n,new1);//заполняем его
    cout<<"\nYour matr: "<<endl;//выводим
    output(n,new1);
    
    int *mas2 = CreateMas2(n);//создаем массив с помощью функции CreateMas размерностью N
    input(n,new2);//заполняем его
    cout<<"\nYour matr: "<<endl;//выводим
    output(n,new2);
 
    swap(n,new1,new2);//используем функцию "меняния" местами
}
Как нужно исправить чтобы заработало?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru