Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 16.05.2015
Сообщений: 32
1

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

01.06.2015, 12:06. Просмотров 1457. Ответов 3
Метки нет (Все метки)


Нужно найти макс и мин элемент в каждом столбце в двумерном массиве и заменить их нулями.
Программа не правильно работает для отриц. значений(для полож. все верно), подскажите где допущена ошибка.
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 "stdio.h"
#include "conio.h"
#include "locale.h"
int main()
{
    setlocale(LC_ALL,"rus");
    int a[100][100],N,maxi,maxj,max,min,mini,minj;
    printf("Введите кол-во строк (кол-во столбцов) >");
    scanf("%d,",&N);
    printf("Введите элементы массива >");
    for (int i=0;i<N;i++)
    {
        for (int j=0;j<N;j++)
            scanf("%d",&a[i][j]);
    }
    for (int j=0;j<N;j++)
    {
        min =a[0][j];
        mini=0;
        minj=j;
        for (int i=0;i<N;i++)
        {
            if (a[i][j]<min)
            {
                min=a[i][j];
                mini=i;
                minj=j;
            }
        }
        a[mini][minj]=0;
    }
    for (int j=0;j<N;j++)
    {
        max =a[0][j];
        maxi=0;
        maxj=j;
        for (int i=0;i<N;i++)
        {
            if (a[i][j]>max)
            {
                max=a[i][j];
                maxi=i;
                maxj=j;
            }
        }
        a[maxi][maxj]=0;
    }
    printf("\n");
    for (int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
            printf("%d ",a[i][j]);
            printf("\n");
    }
    getch();
 
}
1
Миниатюры
Найти максимальный и минимальный элемент в каждом столбце матрицы и заменить их нулями  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2015, 12:06
Ответы с готовыми решениями:

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

В каждой строке матрицы найти максимальный элемент, в каждом столбце найти минимальный элемент, и поменять их местами
пожалуйста помогите плз!!! дан массив А. В каждой строке найти максимальный элемент, в каждом...

в каждом столбце матрицы найти минимальный элемент и заменить его на 0
Дана рандомно заполненная матрица A. В каждом столбце найти минимальный элемент и заменить его на...

Определить минимальный элемент в каждом столбце и максимальный элемент в каждой строке матрицы
Определить минимальный элемент в каждом столбце и максимальный элемент в каждой строке матрицы....

3
Падаван С++
445 / 259 / 89
Регистрация: 11.11.2014
Сообщений: 908
01.06.2015, 14:37 2
Лучший ответ Сообщение было отмечено axel__ как решение

Решение

Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <conio.h>
#include <limits.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
 
int main(void)
{
    srand(time(NULL));
    setlocale(LC_ALL,"Russian");
    int Arr[10][10];
    int min, max, imin, imax,n,m;
 
    printf("Введите кол-во строк в матрцие : ");
    scanf("%d", &n);
    printf("Введите кол-во столбцов в матрцие : ");
    scanf("%d", &m);
    system("cls");
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            Arr[i][j] =-5 + rand() % 10;
            printf("%3d", Arr[i][j]);
        }
        printf("\n");
    }
    
    for (int j = 0; j < m; j++)
    {
        min = INT_MAX; max = INT_MIN;
        for (int i = 0; i < n; i++)
        {
            if (Arr[i][j] > max) 
            {
                max = Arr[i][j];
                imax = i;
            }
            if (Arr[i][j] < min)
            {
                min = Arr[i][j];
                imin = i;
            }
        }
        Arr[imin][j] = NULL;
        Arr[imax][j] = NULL;
    }
 
    printf("\n\n");
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            printf("%3d", Arr[i][j]);
        printf("\n");
    }
 
    getch();
    return 0;
}


Добавлено через 20 минут
чучуть поинтереснее, с выводом промежуточных результатов и подсветкой эллементов которые обнулились
Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <conio.h>
#include <limits.h>
#include <stdlib.h>
#include <windows.h>
#include <locale.h>
#include <time.h>
 
int main(void)
{
    srand(time(NULL));
    setlocale(LC_ALL, "Russian");
    int Arr[10][10];
    int min, max, imin, imax,n,m;
 
    HANDLE h;
    h = GetStdHandle(STD_OUTPUT_HANDLE);
 
    printf("Введите кол-во строк в матрцие : ");
    scanf("%d", &n);
    printf("Введите кол-во столбцов в матрцие : ");
    scanf("%d", &m);
    system("cls");
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            Arr[i][j] =-5 + rand() % 10;
            printf("%3d", Arr[i][j]);
        }
        printf("\n");
    }
    
    for (int j = 0; j < m; j++)
    {
        min = INT_MAX; max = INT_MIN;
        for (int i = 0; i < n; i++)
        {
            if (Arr[i][j] > max) 
            {
                max = Arr[i][j];
                imax = i;
                jmax = j;
            }
            if (Arr[i][j] < min)
            {
                min = Arr[i][j];
                imin = i;
                jmin = j;
            }
        }
        Arr[imin][jmin] = NULL;
        Arr[imax][jmax] = NULL;
 
        printf("\n\n");
        for (int l = 0; l < n; l++)
        {
            for (int k = 0; k < m; k++)
            {
                if ((l == imin && k == j) || (l == imax && k == j))
                    SetConsoleTextAttribute(h, 0x0a);
                else
                    SetConsoleTextAttribute(h, 0x07);
                printf("%3d", Arr[l][k]);
            }
            printf("\n");
        }
    }
 
    getch();
    return 0;
}


Добавлено через 10 минут
По поводу ваше варианта, проверил все хорошо
1
1 / 1 / 0
Регистрация: 16.05.2015
Сообщений: 32
01.06.2015, 16:25  [ТС] 3
Благодарю, за помощь!
0
Падаван С++
445 / 259 / 89
Регистрация: 11.11.2014
Сообщений: 908
01.06.2015, 16:43 4
axel__, Там во втором варианте переменные jmin, jmax не нужны, а для благодарностей есть кнопочка спасибо
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2015, 16:43

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

Поменять местами минимальный и максимальный элемент в каждом столбце матрицы
Дано матрицу размера 5 x 10. Превратить матрицу, поменяв местами минимальный и максимальный...

Поменять местами минимальный и максимальный элемент в каждом столбце матрицы
Дано матрицу размером 5 x 10. Превратить матрицу, поменяв местами минимальный и максимальный...

Поменять местами минимальный и максимальный элемент в каждом столбце матрицы
Дано матрицу размера 5 x 10 Преобразовать матрицу, поменяв местами минимальный и максимальный...

Определить минимальный элемент в каждом столбце матрицы и выбрать из них максимальный
Вывести на экран матрицу 5х3, элементами которой являются целые случайные числа из интервала...

Определить минимальный элемент в каждом столбце матрицы и выбрать из них максимальный
Вывести на экран матрицу 10х8, элементами которой являются целые случайные числа из интервала ....

Максимальный элемент в каждом столбце матрицы, минимальный в каждой строке - объединить в массив
Дана матрица q (k,n). Найти значение максимального елемента в каждом столбце,минимального в каждой...


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

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

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