Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 25.02.2013
Сообщений: 64
1

Найти в двумерном массиве максимальный элемент и удалить строку и столбцы, содержащие найденный элемент

08.06.2014, 16:05. Просмотров 939. Ответов 5
Метки нет (Все метки)

Программу ищет в двумерном массиве максимального элемента и удаляет строку и столбцы, содержащего найденный элемент. Приемлема в том, что он записывает в новый массив все в 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
63
64
65
66
#include <iostream> 
#include <math.h>  
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std; 
int main(char* argv[])
{
    int strok = 5;
    int stolb = 5;
    int k = 0;
 
 
    int ptrarray2[100][100], ptrarray[100][100], value = 0, maxi, maxj;
    
    for (int i = 0; i < strok; i++){
        for (int j = 0; j < stolb; j++){
            ptrarray2[i][j]= (rand() % 89) + 10;
        }
    }
    for (int i = 0; i < strok; i++){
        for (int j = 0; j < stolb; j++){
            if (ptrarray2[i][j] > value)
            {
                value = ptrarray2[i][j];
                maxi = i;
                maxj = j;
            }
        }
    }
 
    for (int i = 0; i < strok; i++){
        for (int j = 0; j < stolb; j++){
            cout << ptrarray2[i][j]<< " ";
        }
        cout << endl;
    } 
    cout << endl;
    int m = 0; int t = 0;
    for (int i = 0; i < strok; i++){
        for (int j = 0; j < stolb; j++){
             t++;
            if (i != maxi)
            {
                if (j != maxj)
                {
                    if (t == stolb+1)
                    {
                        k++;
                    }
                    ptrarray[k][m] = ptrarray2[i][j];
                    m++;
                    
                }
            }
        }       
    } 
    for (int i = 0; i < strok - 1; i++){
        for (int j = 0; j < stolb - 1; j++){
            cout << ptrarray[i][j]<< " ";
        }
        cout << endl;
    } 
    system ("pause");
}
Работа со вторым массивом

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for (int i = 0; i < strok; i++){
        for (int j = 0; j < stolb; j++){
             t++;
            if (i != maxi)
            {
                if (j != maxj)
                {
                    if (t == stolb+1)
                    {
                        k++;
                    }
                    ptrarray[k][m] = ptrarray2[i][j];
                    m++;
                    
                }
            }
        }       
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2014, 16:05
Ответы с готовыми решениями:

Найти максимальный отрицательный элемент в двумерном массиве и удалить столбцы, содержащие копии этого элемента
Найти максимальный отрицательный элемент в двумерном массиве и удалить столбцы, содержащие копии...

Удалить столбцы, содержащие максимальный элемент
матрица размерностью NхM заполняется генератором случайных чисел. Удалить столбцы,содержащие...

В двумерном массиве n*m найти строку с минимальной суммой и в ней максимальный элемент
1)Создать двумерный массив размером n*m. 2)Найти строку с минимальной суммой и в ней максимальный...

Удалить все строки и столбцы содержащие максимальный элемент массива
Здравствуйте, начал искать людей которые могли б помоч мне с этой задачей и кто-то сказал этот...

5
4029 / 2319 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
08.06.2014, 16:16 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    for ( int i = 0; i < strok; ++i )
    {
        if ( i != maxi )
        {
            for ( int j = 0; j < stolb; ++j )
            {
                if ( j != maxj )
                {
                    ptrarray[ k ][ m++ ] = ptrarray2[ i ][ j ];
                }
            }
            ++k;
        }
    }
0
0 / 0 / 1
Регистрация: 25.02.2013
Сообщений: 64
08.06.2014, 16:18  [ТС] 3
Пробовал и так, не помогает.
0
4029 / 2319 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
08.06.2014, 16:53 4
Ай-яй-яй, как жаль...
0
0 / 0 / 1
Регистрация: 25.02.2013
Сообщений: 64
08.06.2014, 17:21  [ТС] 5
Тема закрыта!
0
0 / 0 / 0
Регистрация: 26.03.2016
Сообщений: 52
24.04.2016, 23:57 6
Ozzys, помоги пожалуйста, у меня тоже такое задание. Как ты решил проблему?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2016, 23:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти максимальный элемент и заменить им первый элемент строки в двумерном массиве
В матрице X(4,5) в каждой строке найти максимальный элемент и заменить им первый элемент строки....

В произвольно заданном двумерном массиве поменять местами строки, содержащие минимальный и максимальный элемент
9. В произвольно заданном двумерном массиве поменять местами строки, содержащие минимальный и...

Удалить столбец и строку содержащие максимальный элемент матрицы
Прмогите решить плиз... Дана матрица А(nxm). Скорректировать эту матрицу, удалив из нее строку и...

На главной диагонали матрицы найти максимальный элемент, закрасить найденный элемент, вывести преобразованную
На главной диагонали матрицы найти максимальный элемент, закрасить найденный элемент, вывести...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.