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

Нахождение в масивах наибольшего,наименьшего числа. - C++

Восстановить пароль Регистрация
 
Silas
 Аватар для Silas
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 14
17.12.2010, 14:02     Нахождение в масивах наибольшего,наименьшего числа. #1
Доброго времени суток.Скажите пожалуйста,как найти наибольший элемент в двумерном масиве,и как наименьший.И как поменять местами строку, содержащую элемент с наибольшим значением со строкой, содержащей элемент с наименьшим значением.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2010, 14:02     Нахождение в масивах наибольшего,наименьшего числа.
Посмотрите здесь:

Определить произведение наибольшего и наименьшего числа, их абсолютное значение C++
Нахождение наименьшего числа (С++) C++
Составить программу для нахождения наибольшего и наименьшего общего делителя и наименьшего общего кратного двух натуральных чисел C++
нахождение наименьшего и наибольшего,,,,замена местами.... C++
нахождение наибольшего числа в массиве C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.12.2010, 14:41     Нахождение в масивах наибольшего,наименьшего числа. #2
Цитата Сообщение от Silas Посмотреть сообщение
Скажите пожалуйста,как найти наибольший элемент в двумерном масиве,и как наименьший.И как поменять местами строку, содержащую элемент с наибольшим значением со строкой, содержащей элемент с наименьшим значением.
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
#include <iostream>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
int** swap_string(int **mat,int M, int N, int imax, int imin)
{
    int temp;
    for(int i=0; i<M; i++)
    {
        for(int j=0; j<N; j++)
        {
            if(i==imin)
            {
                temp=mat[i][j];
                mat[i][j]=mat[imax][j];
                mat[imax][j]=temp;
            }
        }
    }
  return mat;
}
 
int main()
{
   
   srand(static_cast<int>(time(NULL)));
   int **mat;
   int M,N,max,min,imax=0,imin=0;
   cout<<"Enter M -> ";
   cin>>M;
   mat = new int*[M];
   cout<<"Enter N -> ";
   cin>>N;
   cout<<endl<<"Matrix "<<M<<"x"<<N<<endl;
    for(int i=0; i<M; i++)
    {
        mat[i]=new int[N];
         for(int j=0; j<N; j++)
          {
             mat[i][j]=rand()%50;
              cout<<setw(4)<<mat[i][j]<<setw(4);
          }
       cout<<endl;
    }
   max=mat[0][0];
   min=mat[0][0];
   for(int i=0; i<M; i++)
    {
         for(int j=0; j<N; j++)
          {
             if(mat[i][j] > max)
             {
                 max=mat[i][j];
                 imax=i;
             }
             if(mat[i][j] < min)
             {
                 min=mat[i][j];
                 imin=i;
             }
          }
    }
  cout<<endl<<"Min is "<<imin+1<<" -> "<<min<<endl;
  cout<<"Max is "<<imax+1<<" -> "<<max<<endl;
   swap_string(mat,M,N,imax,imin);
   cout<<endl<<"New matrix: "<<endl;
   for(int i=0; i<M; i++)
    {
         for(int j=0; j<N; j++)
          {
              cout<<setw(4)<<mat[i][j]<<setw(4);
          }
       cout<<endl;
    }
  system("pause");
return 0;
}
Silas
 Аватар для Silas
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 14
25.12.2010, 18:50  [ТС]     Нахождение в масивах наибольшего,наименьшего числа. #3
Спасибо конечно же,но можно ли попроще код?А то этот сложноват для меня.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.12.2010, 18:52     Нахождение в масивах наибольшего,наименьшего числа. #4
Silas, а что вам не понятно?
Silas
 Аватар для Silas
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 14
25.12.2010, 19:40  [ТС]     Нахождение в масивах наибольшего,наименьшего числа. #5
что исполняет этот код "srand(static_cast<int>(time(NULL)));".И по подробней бы про эту "int** swap_string(int **mat,int M, int N, int imax, int imin)" ф-ю.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.12.2010, 19:52     Нахождение в масивах наибольшего,наименьшего числа. #6
Цитата Сообщение от Silas Посмотреть сообщение
srand(static_cast<int>(time(NULL)));
Устанавливает исходное число для последовательности, генерируемой функцией rand(). В нашем случее мы берем в качастве етого числа системное время.


Цитата Сообщение от Silas Посмотреть сообщение
.И по подробней бы про эту "int** swap_string(int **mat,int M, int N, int imax, int imin)" ф-ю.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int** swap_string(int **mat,int M, int N, int imax, int imin) // в качестве аргумента подаем указатель на матрицу, количество сторок, столбцов, номер строк с наибольшым и наименшым елементами 
{
        int temp; // переменая-буфер
        for(int i=0; i<M; i++) // цыкл проходит по строкам
        {
                for(int j=0; j<N; j++) // цыкл проходит по столбцам
                {
                        if(i==imin) //если номер строки совпал с номером строки, в которой находится минимальный елемент
                        {
                               // меняем местами елемент минимальной строки с елементом максимальной строки
                                temp=mat[i][j];
                                mat[i][j]=mat[imax][j];
                                mat[imax][j]=temp;
                        }
                }
        }
  return mat; // возвращаем новую матрицу
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2010, 23:04     Нахождение в масивах наибольшего,наименьшего числа.
Еще ссылки по теме:

Нахождение наименьшего числа в массиве C++
Нахождение наибольшего и наименьшего элементов целочисленного массива C++
Нахождение наибольшего числа в столбце динамического массива C++

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

Или воспользуйтесь поиском по форуму:
abyr
4 / 4 / 1
Регистрация: 23.12.2010
Сообщений: 27
25.12.2010, 23:04     Нахождение в масивах наибольшего,наименьшего числа. #7
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
#include <cstdlib>
#include <time.h>
#include <iostream>
#include <iomanip>
using namespace std;
 
/*
 * 
 */
int main(int argc, char** argv) {
    srand( time( NULL ) );
    int n, m, max = -101, min = 101, x = 0, y = 0;
    cout << "Введите количество строк - "; cin >> n;
    cout << "Введите количество столбцов - "; cin >> m;
    int a[n][m], b[n];
    for ( int i = 0; i < n; i++ ) {
        cout << "\n";
        for ( int j = 0; j < m; j++ ) {
            a[i][j] = rand()%100 - rand()%100;          //создаем массив, используя случайные числа от -100 до 100
            cout << setw(4) << a[i][j] << " ";          //контрольный вывод массива
        }
        
    }
    for ( int i = 0; i < n; i++ ) {
        for ( int j = 0; j < m; j++ ) {
            if (a[i][j] > max) {
                max = a[i][j];           //ищем наибольший элемент массива
                x = i;
            }
            if (a[i][j] < min) {
                min = a[i][j];           //ищем наименьший элемент массива
                y = i;
            }
        }
    }
    cout << "\n\nНаибольший элемент массива = " << max;
    cout << "\nНаименьший элемент массива = " << min << "\n\n";
    cout << "Строка с наибольшим элементом - " << x << "\n";
    cout << "Строка с наименьшим элементом - " << y << "\n\n";
    for ( int i = 0; i < n; i++ ) {         //в этом цикле меняем строки местами, записывая их в одномерный массив
        if ( i == x ) b[i] = y;
        if ( i == y ) b[i] = x;
        if ( i != x && i != y ) b[i] = i;
    }
    for ( int i = 0; i < n; i++ ) {
        for ( int j = 0; j < m; j++ ) {
            cout << setw(4) << a[b[i]][j] << " ";           //вывод массива с поменяными строками
        }
        cout << "\n";
    }
    cout << "\n";
    return 0;
}
что не понятно, спрашивай.
Yandex
Объявления
25.12.2010, 23:04     Нахождение в масивах наибольшего,наименьшего числа.
Ответ Создать тему
Опции темы

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