0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 29
1

В массиве найти локальные максимумы, определить их местоположение

19.10.2014, 20:12. Показов 5526. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В массиве А (45) найти локальные максимумы, определить их местоположение (локальным максимумом назовем элемент массива, значение которого больше, чем значения двух соседних с ним элементов).

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
#include<stdio.h>
#include<conio.h>
#include <iostream.h>
 
main (void)
{
clrscr ();
    float a[45];
    int i,k=0,place[43],n;
 
    printf("vvedite massiv:\n");
    n=45;
 
    for (i=0;i<n;i++)
        scanf("%f",&a[i]);
 
    for (i=1;i<n-1;i++)
        if ((a[i-1]<a[i])&&(a[i+1]<a[i]))
        {
            place[k]=i;
            k++;
        }
 
    printf("Nomera lokalnyx maksimumov:\n");
 
    for (i=0;i<k;i++)
        printf("%d\n",place[i]);
 
    getch();
    return 0;
    }
нужно подшаманить код на ввод массива генератором случайных чисел, и после вывод его на экран, чтобы на финише, можно было смотреть на этот массив и на максимумы оценивая правильность работы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2014, 20:12
Ответы с готовыми решениями:

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

Локальные максимумы в двумерном массиве
Здравствуйте, нуждаюсь в помощи Необходимо найти в двумерном массиве(любого размера) все...

Найти локальные максимумы с++
Даны три массива A, B, C. Найти общее количество локальных максимумов в этих массивах. С...

В массиве размера NN обнулить все локальные максимумы (то есть числа, большие своих соседей)
Дан массив размера NN. Обнулить все его локальные максимумы (то есть числа, большие своих соседей);...

8
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
19.10.2014, 21:27 2
http://www.tutorialspoint.com/... n_rand.htm
0
Мастер кустарных методов
232 / 227 / 17
Регистрация: 09.11.2010
Сообщений: 680
19.10.2014, 22:20 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main (void)
{
    float a[45];
    int i,k=0,place[43],n;
    time_t t;
    srand((unsigned) time(&t));
    
    system("cls");
    n=45;
    
    for (i=0;i<n;i++){
        a[i] = (float) rand()/(float)RAND_MAX;
        printf("%f ",a[i]);
    }
...
...
    return 0
}
0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 29
19.10.2014, 23:05  [ТС] 4
не получается скомпоновать ваш кусок кода с основным! поковырял еще сам, получается числа сгенерированые выводятся на экран, но программа считывает все равно последовательность до 45:
воть
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
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include <iostream>
 
main (void)
{
 
    float a[45];
    int i,k=0,place[43],a;
 
{
 
    printf("vvedite massiv:\n");
    {
    
    time_t t;
    n=45;
    srand((unsigned) time(&t));
}
    for( i = 0 ; i < n ; i++ ) 
      printf("%d\n", rand() % 45);
 
 
    for (i=0;i<k;i++)
        scanf("%f",&a[i]);
}
    for (i=1;i<n-1;i++)
        if ((a[i-1]<a[i])&&(a[i+1]<a[i]))
        {
        
            place[k]=i;
            k++;
    }
 
    printf("Nomera lokalnyx maksimumov:\n");
 
    for (i=0;i<k;i++)
        printf("%d\n",place[i]);
 
    getch();
    return 0;
    }
0
Мастер кустарных методов
232 / 227 / 17
Регистрация: 09.11.2010
Сообщений: 680
20.10.2014, 09:35 5
Этот код у вас не работает?
Кликните здесь для просмотра всего текста
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
 
int main (void)
{
    float a[45];
    int i,k=0,place[43],n;
    time_t t;
    srand((unsigned) time(&t));
    
    system("cls");
    n=45;
    
    for (i=0;i<n;i++){
        a[i] = (float) rand()/(float)RAND_MAX;
        printf("%f ",a[i]);
    }
    printf("\n");
    
    for (i=1;i<n-1;i++)
    if ((a[i-1]<a[i])&&(a[i+1]<a[i]))
    {
        place[k]=i;
        k++;
    }
 
    printf("Nomera lokalnyx maksimumov:\n");
 
    for (i=0;i<k;i++)
    printf("%d\n",place[i]);
 
    getch();
    return 0;
}

Вывод:
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
0.098819 0.753838 0.571856 0.131596 0.822443 0.904843 0.897794 0.584613 0.868191
 0.461348 0.422071 0.604022 0.511795 0.989563 0.767083 0.860225 0.629292 0.69963
7 0.287057 0.835932 0.636219 0.253609 0.769860 0.345897 0.053682 0.692282 0.7811
82 0.128788 0.857570 0.012268 0.058046 0.292703 0.267159 0.425214 0.856777 0.895
199 0.129734 0.829371 0.662740 0.439619 0.556749 0.525620 0.167486 0.568651 0.96
8444
Nomera lokalnyx maksimumov:
1
5
8
11
13
15
17
19
22
26
28
31
35
37
40


Если чуть красивее, то:

Кликните здесь для просмотра всего текста
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
 
#define N 45
#define M 5.0
 
int main (void) {
    float a[N];
    int i, k=0, place[N-2];
    time_t t;
    srand((unsigned) time(&t));
    
    system("cls");
    
    for (i=0;i<N;i++) {
        a[i] = (float) rand()/(float)RAND_MAX * M;
        printf("a[%d]:\t%f\n",i,a[i]);
    }
    
    for (i=1;i<N-1;i++) {
        if ((a[i-1]<a[i])&&(a[i+1]<a[i]))
        {
            place[k]=i;
            k++;
        }
    }
    
    printf("Nomera lokalnyx maksimumov:\n");
 
    for (i=0;i<k;i++)
    printf("%d\n",place[i]);
 
    getch();
    return 0;
}

Вывод:
Кликните здесь для просмотра всего текста
Bash
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
a[0]:   1.089663
a[1]:   3.660848
a[2]:   0.257424
a[3]:   3.423566
a[4]:   4.897763
a[5]:   0.533921
a[6]:   2.021088
a[7]:   4.156468
a[8]:   0.106052
a[9]:   1.252480
a[10]:  0.140690
a[11]:  1.051668
a[12]:  4.417554
a[13]:  2.046724
a[14]:  0.410321
a[15]:  0.772271
a[16]:  3.207190
a[17]:  3.200018
a[18]:  0.253304
a[19]:  3.727531
a[20]:  4.713279
a[21]:  4.101535
a[22]:  1.690725
a[23]:  0.788751
a[24]:  3.011719
a[25]:  4.947508
a[26]:  4.360485
a[27]:  4.862056
a[28]:  1.429792
a[29]:  2.125767
a[30]:  2.490158
a[31]:  0.590838
a[32]:  1.555528
a[33]:  1.812494
a[34]:  2.231514
a[35]:  2.979522
a[36]:  0.498978
a[37]:  3.812983
a[38]:  3.263039
a[39]:  3.209937
a[40]:  1.561632
a[41]:  0.177923
a[42]:  1.065401
a[43]:  2.439650
a[44]:  0.970641
Nomera lokalnyx maksimumov:
1
4
7
9
12
16
20
25
27
30
35
37
43
0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 29
21.10.2014, 22:21  [ТС] 6
в какой части кода меняется диапазон генерируемых чисел!? если мне например нужен диапазон от 0 до 100
0
Мастер кустарных методов
232 / 227 / 17
Регистрация: 09.11.2010
Сообщений: 680
22.10.2014, 09:39 7
GAZ66, ну как-то так.
C
1
a[i] =rand()%100 + (float) rand()/(float)RAND_MAX ;
Поиграйтесь с этой строчкой кода.
0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 29
22.10.2014, 19:19  [ТС] 8
получилось сделать, но только не как не могу убрать эти 6 знаков после запятой
0
Мастер кустарных методов
232 / 227 / 17
Регистрация: 09.11.2010
Сообщений: 680
23.10.2014, 09:15 9
Цитата Сообщение от GAZ66 Посмотреть сообщение
не могу убрать эти 6 знаков после запятой
Ну так вы сами изначально объявили массив float.
0
23.10.2014, 09:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2014, 09:15
Помогаю со студенческими работами здесь

Как найти локальные максимумы?
Подскажите пожалуйста как найти локальные максимумы??

Найти локальные максимумы вектора (STL)
Задания к выполнению. 1. Создать вектор (пусть это будет целочисленный вектор). ...

Найти локальные максимумы двухмерного массива
Дан двухмерный массив 20 х 20 целочисленных элементов. Найдите все локальные максимумы. Элемент...

Найти локальные максимумы двухмерного массива
Дан двухмерный массив 20 х 20 целочисленных элементов. Найдите все локальные максимумы. Элемент...


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

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

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