lomglpersona
1

Поиск максимального и минимального элементов в динамическом массиве

13.05.2012, 21:47. Показов 2650. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Тут всплыла такая проблема. Задали задачу, на динамические массивы. выделять память для статического массива, записывать макс и мин элементы в отдельный массив из двух элементов. Затем обнулять его, и искать макс и мин в динамическом массиве, и заполнять его. вот код, в динамическом массиве максимум не считает. Надеюсь на вашу помощь.


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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <malloc.h>
#define N 2
#define M 3
 
float *statArray(float *arr, int s,int c)
{
   float *arr2;
   int i,j;
 
   arr2=calloc(2,sizeof(float));
   printf("source array in funcs:\n");
   for (i = 0; i<N; i++)
   {
       for (j=0; j<M; j++)
       {
           printf ("%4.f\t", arr [i*c+j]);
 
       }
       printf("\n");
 
   }
 
   arr2[0]=arr2[1]=arr[0];
 
   for (i=0;i<N;i++)
   {
        for (j=0; j<M; j++)
        {
            if (arr[i*c+j]>arr2[0]) arr2[0]=arr[i*c+j];
            if (arr[i*c+j]<arr2[1]) arr2[1]=arr[i*c+j];
        }
   }
 
   return arr2;
 
}
 
float *dynArray(float **arr,int s, int c)
{
   float max, min;
   int i,j;
   float *arr2;
   arr2=calloc(2,sizeof(float));
 
   printf("dynamic array: \n");
   for(i=0; i<s; i++)
   {
       for(j=0;j<c;j++)
       {
           printf("%4.2f\t", arr[i][j]);
       }
       printf("\n");
   }
       max=min=arr[0][0];
   //arr2[0]=arr[0][0];
   //arr2[1]=arr[0][0];
 
   for (i=0;i<N;i++)
    {
        for (j=0; j<M; j++)
        {
            if (arr[i][j]< min) min=arr[i][j];
            if (arr[i][j]> max) max=arr[i][j];
        }
    }
    arr2[0] = min;
    arr2[1] = max;
    return arr2;
 
}
 
 
 
int main()
{
   float *arr2, *darr2;
   float **dyn;
   float arr [N*M] = {6,4,-8,12,65,4};
   int i,j,s,c;
 
   printf("source array:\n");
   for (i = 0; i<N; i++)
    {
       for (j=0; j<M; j++)
          {
              printf ("%4.f\t", arr [i*M+j]);
          }
       printf("\n");
    }
    printf("\n");
    //arr2[0]=arr2[1]=arr[0][0];
    /*for (i=0;i<N;i++)
    {
        for (j=0; j<M; j++)
        {
            if (arr[i][j]>arr2[0]) arr2[0]=arr[i][j];
            if (arr[i][j]<arr2[1]) arr2[1]=arr[i][j];
        }
    }
    printf("\nmax=%4.2f\n", arr2[0]);
    printf("\nmin=%4.2f\n", arr2[1]);*/
 
    arr2=statArray(arr, N, M);
    printf("\n");
 
    printf("result: ");
    printf("\nmax=%4.f\n", arr2[0]);
    printf("\nmin=%4.f\n", arr2[1]);
 
    /////////////////
 
    printf("\nInput number of strings: ");
    scanf("%i", &s);
    printf("\nInput number of columns: ");
    scanf("%i", &c);
 
    dyn = (float **)calloc(s,sizeof(float *));
    for(i = 0; i < s; i++)
    {
        dyn[i] = (float **)calloc(c, sizeof(float ));
    }
    darr2 = calloc(c,sizeof(float));
 
    printf("Input this array: \n");
    for(i = 0; i < s; i++)
    {
        for(j = 0; j < c; j++)
        {
            scanf("%f", &dyn[i][j]);
        }
    }
 
    darr2=dynArray(dyn, s, c);
 
    printf("\nmax=%9.4f\n", darr2[1]);
    printf("\nmin=%9.4f\n", darr2[0]);
    for(i=0; i < s; i++)
    {
        free(dyn[i]);
    }
    free(dyn);
    free(arr2);
    free(darr2);
 
    return 0;
 
}
знаю, что на Вашем форуме не так давно, но все же надеюсь на помощь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2012, 21:47
Ответы с готовыми решениями:

Поиск максимального/минимального элемента в динамическом массиве
Необходимо из главного массива glmas,сформированного из элементов стринггрида выбрать минимальные...

Поиск максимального и минимального элемента в одномерном динамическом массиве
Помогите пожалуйста, никак не могу понять где тут ошибка и что вообще нужно делать(код на C++)...

Поиск максимального и минимального элементов в массиве за один цикл
Выполните поиск максимального и минимального элементов в массиве за один цикл

Выполнить поиск максимального и минимального элементов в массиве за один цикл
Выполнить поиск максимального и минимального элементов в массиве за один цикл. Смог только в два...

2
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
13.05.2012, 23:39 2
Что так мало? Он не полный! В чем проблема?
0
lomglpersona
14.05.2012, 23:34 3
код полный, даже работающий.=) Только максимум он не правильно выдает. Я думал, может где то не обнуляется значение, но вроде с этим все впорядке. Совсем запутался.
14.05.2012, 23:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2012, 23:34
Помогаю со студенческими работами здесь

Поиск максимального/минимального элемента в массиве
Данная матрица размера m * n. Найти 1. минимальный 2. максимальный среди 1)...

Поиск максимального и минимального элемента в массиве
Как найти максимальный и минимальный элемент в одномерном массиве

Поиск максимального и минимального элемента в массиве
Помогите отредактировать программу. Задание: Ввести двумерный массив, найти индексы и значения...

Поиск минимального и максимального элемента в массиве
2. Сформировать 10-элементный массив случайным образом. Вывести на экран: а) минимальный элемент;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru