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

Нахождение max и min в матрице . и поменять их местами - C++

Восстановить пароль Регистрация
 
Sfaany
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 11
03.02.2013, 16:16     Нахождение max и min в матрице . и поменять их местами #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
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
randomize();
int i,n,m,min,max,k1,k2;
int **x;
float sr;
max=0;
printf("Vvedite razmer matrici: \n");
    scanf("%d %d", &n,&m );
x=(int **)malloc(n*sizeof(int *));
 for (i=0;i<n;i++)
 x[i]=(int )malloc(n*sizeof(int *));
printf("Matrica:\n");
 for(i=0;i<n;i++)
 {x[i]=random(10)+;0
 printf("%2d ",x[i]);  }
min=x[0];
 
for(i=0;i<n;i++)
{if(x[i]>max){max=x[i];
    k1=i;}
if(x[i]<min){min=x[i];
    k2=i;}
 }
printf("Max: %d \n",max);
printf("Min: %d \n",min);
 
 
getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
03.02.2013, 16:30     Нахождение max и min в матрице . и поменять их местами #2
Вот написал свой ​​вариант:
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
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
const int size=3;
 
int main(){
    
    int** m = new int*[size];
    for (int i=0; i<size; i++)
        m[i] = new int[size];
 
    for (int i=0; i<size; i++)
        for (int j=0; j<size; j++)
            m[i][j] = rand()%10;
  
    for (int i=0; i<size; i++){
        for (int j=0; j<size; j++)
            cout << m[i][j] << " ";
        cout << endl;
    }
    cout << endl;
 
 
 
  int max=m[0][0],min=m[0][0];
  int jmax=0,jmin=0,imax=0,imin=0;
    
    for (int i=0; i<size; i++){
    
        for (int j=0; j<size; j++){
            if (m[i][j] > max) { max = m[i][j]; jmax = j; imax=i; }
            if (m[i][j] < min) { min = m[i][j]; jmin = j; imin=i; }
        }   
        
    } 
    int tmp = m[imax][jmax];
        m[imax][jmax] = m[imin][jmin];
        m[imin][jmin] = tmp;
        
    
    cout<<"Modified matrix:\n\n";
    for (int i=0; i<size; i++){
        for (int j=0; j<size; j++)
            cout << m[i][j] << " ";
        cout << endl;
    }
    
    for(int i = 0; i < size; i++)
        delete[] m[i];
    delete[] m;
    getch();
    return 0;
}
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
03.02.2013, 16:48     Нахождение max и min в матрице . и поменять их местами #3
Цитата Сообщение от Sfaany Посмотреть сообщение
Доброго времени суток столкнулась с этой программой в лоб в лоб . И ни как не могу вывести матрицу с этими указателями, я в них запуталась , или пишу какой-то бред=( помогите разобраться с этой программой
Здравствуйте! Судя по вашему коду Вы новичок в С++, и видимо раньше программировали на языке, подобном паскалю или делфи. Готовое решение задачи Вам предоставил The_bolT, я всего лишь хочу кое-что добавить. Вы используете функции для ввода вывода из библиотеки языка Си (printf(), scanf()). Они уже устарели, и весьма не удобны. Я советую почитать вам про потоковый вывод, который принят в языке C++. На мой взгляд он удобнее и нагляднее, чем тот что использовался в Си. Вот ссылка http://natalia.appmat.ru/c&c++/lezione4.php (2 Потоковый ввод/вывод)

Добавлено через 7 минут
И ещё, вы также использовали функции malloc() и free(), которые тоже достались С++ в наследство от языка Си. Так же советую Вам почитать про средства управления памятью, которые разработаны для языка С++. Операторы new, new[], delete, delete[]. Вот неплохая статья на эту тему. http://programmersclub.ru/31/
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
03.02.2013, 16:54     Нахождение max и min в матрице . и поменять их местами #4
Ну что можно добавить об использовании malloc. Если вы программируете на С + +, то нужно использовать new и delete
http://cplus-plus-ru.blogspot.com/20...ew-delete.html

Добавлено через 47 секунд
Пока писал, уже вместо меня написали)
Sfaany
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 11
03.02.2013, 20:41  [ТС]     Нахождение max и min в матрице . и поменять их местами #5
Цитата Сообщение от Пёс Посмотреть сообщение
Здравствуйте! Судя по вашему коду Вы новичок в С++, и видимо раньше программировали на языке, подобном паскалю или делфи. Готовое решение задачи Вам предоставил The_bolT, я всего лишь хочу кое-что добавить. Вы используете функции для ввода вывода из библиотеки языка Си (printf(), scanf()). Они уже устарели, и весьма не удобны. Я советую почитать вам про потоковый вывод, который принят в языке C++. На мой взгляд он удобнее и нагляднее, чем тот что использовался в Си. Вот ссылка http://natalia.appmat.ru/c&c++/lezione4.php (2 Потоковый ввод/вывод)

Добавлено через 7 минут
И ещё, вы также использовали функции malloc() и free(), которые тоже достались С++ в наследство от языка Си. Так же советую Вам почитать про средства управления памятью, которые разработаны для языка С++. Операторы new, new[], delete, delete[]. Вот неплохая статья на эту тему. http://programmersclub.ru/31/
Все прочитала , но до меня очень сложно доходит все это , меня учат на старом коде программировать
Sfaany
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 11
03.02.2013, 20:46  [ТС]     Нахождение max и min в матрице . и поменять их местами #6
Цитата Сообщение от The_bolT Посмотреть сообщение
Вот написал свой ​​вариант:
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
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
const int size=3;
 
int main(){
    
    int** m = new int*[size];
    for (int i=0; i<size; i++)
        m[i] = new int[size];
 
    for (int i=0; i<size; i++)
        for (int j=0; j<size; j++)
            m[i][j] = rand()%10;
  
    for (int i=0; i<size; i++){
        for (int j=0; j<size; j++)
            cout << m[i][j] << " ";
        cout << endl;
    }
    cout << endl;
 
 
 
  int max=m[0][0],min=m[0][0];
  int jmax=0,jmin=0,imax=0,imin=0;
    
    for (int i=0; i<size; i++){
    
        for (int j=0; j<size; j++){
            if (m[i][j] > max) { max = m[i][j]; jmax = j; imax=i; }
            if (m[i][j] < min) { min = m[i][j]; jmin = j; imin=i; }
        }   
        
    } 
    int tmp = m[imax][jmax];
        m[imax][jmax] = m[imin][jmin];
        m[imin][jmin] = tmp;
        
    
    cout<<"Modified matrix:\n\n";
    for (int i=0; i<size; i++){
        for (int j=0; j<size; j++)
            cout << m[i][j] << " ";
        cout << endl;
    }
    
    for(int i = 0; i < size; i++)
        delete[] m[i];
    delete[] m;
    getch();
    return 0;
}
Ввела программу вашу , вроде запускается , но что то не так
вот фото и так
Миниатюры
Нахождение max и min в матрице . и поменять их местами  
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
03.02.2013, 20:56     Нахождение max и min в матрице . и поменять их местами #7
У меня все работает. Причина вероятно в разных компиляторах, но что вызвало эту ошибку не знаю ..
Sfaany
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 11
03.02.2013, 21:01  [ТС]     Нахождение max и min в матрице . и поменять их местами #8
Цитата Сообщение от The_bolT Посмотреть сообщение
У меня все работает. Причина вероятно в разных компиляторах, но что вызвало эту ошибку не знаю ..
А не подскажите где вы писали ее?
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
03.02.2013, 21:05     Нахождение max и min в матрице . и поменять их местами #9
Цитата Сообщение от Sfaany Посмотреть сообщение
А не подскажите где вы писали ее?
Писал в Dev c++, проверял еще в visual studio 2010 express
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2013, 21:18     Нахождение max и min в матрице . и поменять их местами
Еще ссылки по теме:

Поменять местами max и min четных строк в квадратной матрице C++
Двумерный массив. Поменять местами max и min четных строк C++
C++ Написать программу, которая найдет в матрице max и min и поменяет их местами

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

Или воспользуйтесь поиском по форуму:
Sfaany
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 11
03.02.2013, 21:18  [ТС]     Нахождение max и min в матрице . и поменять их местами #10
Цитата Сообщение от The_bolT Посмотреть сообщение
Писал в Dev c++, проверял еще в visual studio 2010 express
Да все работает , странно в общем , посмотрим прокатит ли универе =(
Спасибо за помощь
Yandex
Объявления
03.02.2013, 21:18     Нахождение max и min в матрице . и поменять их местами
Ответ Создать тему
Опции темы

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