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

Удалить наибольший элемент массива - C++

Восстановить пароль Регистрация
 
Mari_ly
3 / 3 / 0
Регистрация: 13.02.2016
Сообщений: 155
25.04.2016, 00:44     Удалить наибольший элемент массива #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
62
#include <iostream>
#include <cstdlib>// Для rand
#include <iomanip>// Для setw
#include <ctime> //Для time
#include<conio.h>
 
using namespace std;
const int m = 5;
const int n = 5;
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    srand(time(NULL));
 
    int mas[m][n], *p;
 
    for (int i = 0; i < m; i++){
        p = mas[i];
 
        for (int j = 0; j < n; j++){
            *(p + j) = rand() % 101;
            cout << setw(6) << *(p + j) << " ";
        }
        cout << '\n';
    }
 
    int  Max, s, t;
 
    for (int i = 0; i < m; i++){
 
        p = *(mas + i);
 
        Max = *p;
       
 
        for (int j = 0; j < n; j++){
            if (*(p + j) > Max)
               Max = *(p + j);
 
          
        }
 
      
           cout << "\nНаибольший элемент в строке : " << Max;
 
        for (int b = 0; b < n; b++){
            if (*(p + b) == Max){
                s = *(p + b);
                *(p + b) = *(p + 0);
                *(p + 0) = s;
            }
        }
 
        
            }
 
 
    _getch();
    return 0;
}
Добавлено через 4 часа 21 минуту
Помогите!! Ничего не получается.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Соловьёв_Егор
 Аватар для Соловьёв_Егор
58 / 58 / 38
Регистрация: 17.02.2013
Сообщений: 227
25.04.2016, 08:35     Удалить наибольший элемент массива #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
А массив должен быть не одномерным?

Добавлено через 26 минут
Удаляет наибольший элемент в каждой строке матрицы.
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
#include <iostream>
#include <cstdlib>// Для rand
#include <iomanip>// Для setw
#include <ctime> //Для time
#include <locale.h>
#include <limits.h>
 
using namespace std;
 
int main(){
    setlocale(LC_ALL, "rus");
 
    srand(time(NULL));
 
    int **mas, n, m, maximum=INT_MIN, maxIndex, temp;
 
    cout<<"Введите размер матрицы: ";
    cin>>n>>m;
 
    mas=(int**)malloc(n*sizeof(int*));
 
    for(int i = 0; i < n; i++){
        mas[i]=(int*)malloc(m*sizeof(int));
        for(int j = 0; j < m; j++){
            mas[i][j] = rand() % 101;
            cout << setw(6) << mas[i][j];
        }
        cout << '\n';
    }
 
    temp=m-1;;
 
    for(int i = 0; i < n; i++){
        maximum=INT_MIN;
        for(int j = 0; j < m; j++){
            if(max(maximum, mas[i][j])==mas[i][j]){
                maximum=mas[i][j];
                maxIndex=j;
            }
        }
 
        cout << "\nНаибольший элемент в строке :" << maximum<<"\n";
 
        for (int j = maxIndex; j<m-1; j++){
            mas[i][j]=mas[i][j+1];
        }
        mas[i]=(int*)realloc(mas[i], (m-1)*sizeof(int));
 
        for(int j=0; j<(m-1); j++){
            cout << setw(6) << mas[i][j];
        }
 
        cout<<"\n";
    }
 
    for(int i=0; i<n; i++){
        free(mas[i]);
    }
    free(mas);
 
    system("PAUSE");
 
    return 0;
}
Mari_ly
3 / 3 / 0
Регистрация: 13.02.2016
Сообщений: 155
25.04.2016, 20:46  [ТС]     Удалить наибольший элемент массива #3
Мне нужно удалить строку в которой находиться самый большой элемент.
В общем задание звучит так:
В каждой строке найти наибольший элемент. Из этих элементов найти наименьший и удалить ту строку, которой он принадлежит.
Соловьёв_Егор
 Аватар для Соловьёв_Егор
58 / 58 / 38
Регистрация: 17.02.2013
Сообщений: 227
25.04.2016, 21:09     Удалить наибольший элемент массива #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <cstdlib>// Для rand
#include <iomanip>// Для setw
#include <ctime> //Для time
#include <locale.h>
#include <limits.h>
 
using namespace std;
 
int main(){
    setlocale(LC_ALL, "rus");
 
    srand(time(NULL));
 
    int **mas, n, m, maximum=INT_MIN, minimum=INT_MAX, maxIndex, minRow;
 
    cout<<"Введите размер матрицы: ";
    cin>>n>>m;
 
    mas=(int**)malloc(n*sizeof(int*));
 
    for(int i = 0; i < n; i++){
        mas[i]=(int*)malloc(m*sizeof(int));
        for(int j = 0; j < m; j++){
            mas[i][j] = rand() % 101;
            cout << setw(6) << mas[i][j];
        }
        cout << '\n';
    }
 
    for(int i = 0; i < n; i++){
        maximum=INT_MIN;
        for(int j = 0; j < m; j++){
            if(max(maximum, mas[i][j])==mas[i][j]){
                maximum=mas[i][j];
                maxIndex=j;
            }
        }
 
        cout << "\nНаибольший элемент в строке :" << maximum<<"\n";
 
        if(maximum<minimum){
            minimum=maximum;
            minRow=i;
        }
    }
 
    cout << "\nНаименьший элемент из наибольших :" << minimum<<" находится в "<<minRow<<" строке.\n";
 
    for(int i = minRow+1; i < n; i++){
        for(int j = 0; j < m; j++){
            mas[i-1][j]=mas[i][j];
        }
    }
 
    n--;
 
    mas=(int**)realloc(mas, n*sizeof(int*));
 
    cout<<"Результирующая матрица:\n";
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            cout << setw(6) << mas[i][j];
        }
        cout << '\n';
    }
 
    for(int i=0; i<n; i++){
        free(mas[i]);
    }
    free(mas);
 
    system("PAUSE");
 
    return 0;
}
Mari_ly
3 / 3 / 0
Регистрация: 13.02.2016
Сообщений: 155
25.04.2016, 21:21  [ТС]     Удалить наибольший элемент массива #5
Спасибо большое!!!
Yandex
Объявления
25.04.2016, 21:21     Удалить наибольший элемент массива
Ответ Создать тему
Опции темы

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