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

Функция для нахождение минимального значения каждого столбца в двумерном массиве - C++

Восстановить пароль Регистрация
 
Shoha
1 / 1 / 0
Регистрация: 18.11.2014
Сообщений: 7
19.11.2014, 00:52     Функция для нахождение минимального значения каждого столбца в двумерном массиве #1
Как создать функцию, код, который в строчках 41 - 55
Спасибо заранее!!!
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 5
#define COLUMN 5
 
void Display(int *arr, int r, int c)//display function
{
    int i, j;
    printf("Diplaying:\n\n");
    for(i = 0; i < r; i++)
    {
    for (j = 0; j < c; j++)
    {
        printf("%d\t",*(arr+i*c+j));//arrays through the pointers
    }
printf("\n");
    }
}
 
int main()
{
    int arr[ROW][COLUMN];
    int min_elements[COLUMN];
    int i, j,m,n;
    printf("Practical work 2\nVariant 8\n\n");
    srand(time(NULL));//changing random numbers in each running of the programm
 
    for (i = 0; i < ROW; i++) //creating 2D array
    for (j = 0; j < COLUMN; j++)
    {
        arr[i][j]=rand()%44-16;//filling 2D array with random numbers
        min_elements[i] = arr[i][0];
    }
    
 
    Display(*arr,ROW,COLUMN);//display 2D array
    
 
    for( m=0; m < COLUMN; ++m)  //found min
       {
           for (n=0; n < ROW; ++n)
         {
           
            if(arr[n][m] < min_elements[m])
            {  min_elements[m] = arr[n][m];}
            }   
        }
    printf("------------------------------\n");
 
    for (m=0; m < ROW; ++m)  //show min
    {
         printf("%d column) min = %d\n",m,min_elements[m]);
    }
system("pause");
getch();
return 0;
}
Добавлено через 7 часов 46 минут
Уже сделал сам!) СПАСИБО))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 00:52     Функция для нахождение минимального значения каждого столбца в двумерном массиве
Посмотрите здесь:

C++ Нахождение номера столбца с максимальной серией одинаковых элементов в двумерном массиве
Поиск минимального числа в двумерном массиве C++
В двумерном массиве для каждого столбца подситать количество элементов с нечетной целой частью C++
C++ Математическая функция для которой нужно решить задачу нахождения максимального (минимального) значения
Рекурсивная функция поиска минимального элемента матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
19.11.2014, 01:38     Функция для нахождение минимального значения каждого столбца в двумерном массиве #2
Ну раз сделал, то мог бы и показать. Мало ли
Например в строке 34 наверняка индексы перепутаны. Там инициализация производится первой колонкой, а надо бы первой строкой. А если строк будет больше чем колонок, то произойдёт выход за границы массива.

Ну а что касается вопроса, то вариантов может быть много. Вот, например два из них:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void min_in_columns1(int arr[ROW][COLUMN], int min_elements[COLUMN])
{
    int m;
    for (m = 0; m < COLUMN; ++m)
    {
        int n;
        min_elements[m] = arr[0][m];
        for (n = 1; n < ROW; ++n)
        {
            if (arr[n][m] < min_elements[m])
            {
                min_elements[m] = arr[n][m];
            }
        }
    }
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void min_in_columns2(int* arr, int* min_elements, int r, int c)
{
    int m;
    for (m = 0; m < c; ++m)
    {
        int n;
        min_elements[m] = arr[0*c + m];
        for (n = 1; n < r; ++n)
        {
            if (arr[n*c + m] < min_elements[m])
            {
                min_elements[m] = arr[n*c + m];
            }
        }
    }
}
Shoha
1 / 1 / 0
Регистрация: 18.11.2014
Сообщений: 7
19.11.2014, 23:14  [ТС]     Функция для нахождение минимального значения каждого столбца в двумерном массиве #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
58
59
60
61
62
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 5
#define COLUMN 5
 
void Display(int *arr, int r, int c)//display function
{
    int i, j;
    printf("Diplaying:\n\n");
    for(i = 0; i < r; i++)
    {
    for (j = 0; j < c; j++)
    {
        printf("%d\t",*(arr+i*c+j));//arrays through the pointers
    }
printf("\n");
    }
}
 
void Min(int arr[][COLUMN],int MinElements[COLUMN])
{
    int m,n;
   for( m=0; m < COLUMN; ++m)  //found min
       {
           for (n=0; n < ROW; ++n)
         {
            if(arr[n][m] < MinElements[m])
            {  MinElements[m] = arr[n][m];}
            }   
        }
    printf("------------------------------\n");
    for (m=0; m < ROW; m++)  //show min
    {
         printf("%d column) min = %d\n",m,MinElements[m]);
    }
}
 
int main()
{
    int arr[ROW][COLUMN];
    int MinElements[COLUMN];
    int i, j;
    printf("Practical work 2\nVariant 8\n\n");
 
    srand(time(NULL));//changing random numbers in each running of the programm
 
    for (i = 0; i < ROW; i++) //creating 2D array
    for (j = 0; j < COLUMN; j++)
    {
        arr[i][j]= rand()% 44-16;//filling 2D array with random numbers
        MinElements[i] = arr[0][j];
    }
 
    Display(*arr,ROW,COLUMN);//display 2D array
    
    Min(arr,MinElements);//find and display minimum of each column value
system("pause");
getch();
return 0;
}
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
19.11.2014, 23:29     Функция для нахождение минимального значения каждого столбца в двумерном массиве #4
Цитата Сообщение от Shoha Посмотреть сообщение
C
1
MinElements[i] = arr[0][j];
Стало немного лучше, но всё-равно неправильно.
C
1
MinElements[j] = arr[0][j];
И вообще, инициализировать массив MinElements логичнее в функции нахождения минимума, у меня так и делается.
Shoha
1 / 1 / 0
Регистрация: 18.11.2014
Сообщений: 7
20.11.2014, 01:38  [ТС]     Функция для нахождение минимального значения каждого столбца в двумерном массиве #5
Спасибо за профессионализм, но я оставлю как у себя - хоть порадуюсь
Yandex
Объявления
20.11.2014, 01:38     Функция для нахождение минимального значения каждого столбца в двумерном массиве
Ответ Создать тему
Опции темы

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