Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 57
1

Массив. Программа для определения максимального подъема 100-километровой автотрассы.

30.04.2012, 01:23. Показов 1728. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Вот написал программу, но не устраивает меня тем, что нужно выдавать самый длинный подъем, так и есть, но вот как написать от какого элемента начался подъем и каким закончился именно в массиве, то есть его индекс. А в целом задача этой программы: Известна высота над уровнем моря каждого километра 100-километровой автотрассы. Определить, на каком расстоянии от начала автотрассы начинается и заканчивается первый самый длинный участок с непрерывным подъемом.
Так же ведь может подъема нету вообще или таких подъемов несколько. Как можно это обыграть тут? Подскажите, подкиньте идейки!
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
#include<stdio.h>
#include<stdlib.h>
 
 
int main(void)
{
    int n=20,i,max=0,ans=0,k=0,t1=0;
    int a[n];
     srand(21);
    for(i=0;i<n;i++)
     a[i]=rand()%11;
    printf("\n\nArray A\n\n");
     for(i=0;i<n;i++)
      printf("%8i",a[i]);
 
 for(i=0;i<n;i++)
    {
        if(a[i+1]>a[i])
         {
             k++;
         }
           else
        {
 
        if(k>max)
           {
               max=k;
               ans=i-max+1;
               t1++;
           }
           k=0;
         }
    }
 
      printf("\nOt = %i",ans);
      printf("\nDo = %i",ans+t1);
      printf("\nnytb=%i",t1);
    return 0;
}
Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2012, 01:23
Ответы с готовыми решениями:

Массив: Составить подпрограммы определения максимального и минимального элемента в одномерном массиве.
Составить подпрограммы определения максимального и минимального элемента в одномерном массиве....

Массив: Составить программу определения максимального и минимального элементов заданного массива.
составить программу для ввода с клавиатуры данных для 25 элементов массива W, их распечатки по 4...

Разработать макрос для определения максимального числа
Разместить в диапазоне ячеек B5 - I5 целые положительные и отрицательные числа. Разработать макрос...

Разработать программу для определения максимального массива
Разработать программу для определения максимального массива. Только чтоб попроще как-то выглядела)...

6
Заблокирован
30.04.2012, 01:29 2
Мы еще не проходили, но могу сказать точно, что эта задача антогонист к алгоритму о нахождении самого коротко пути. Правда как он называется, сказать не могу. Тебе надо посмотреть списки стандартных алгоритмов.
1
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 57
30.04.2012, 01:35  [ТС] 3
Цитата Сообщение от IFree Host Посмотреть сообщение
Мы еще не проходили, но могу сказать точно, что эта задача антогонист к алгоритму о нахождении самого коротко пути. Правда как он называется, сказать не могу. Тебе надо посмотреть списки стандартных алгоритмов.
Подскажите, где можно посмотреть этот алгоритм конкретно.
0
IFree Host
30.04.2012, 01:44
  #4

Не по теме:

подсказал
смотри в личку

1
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
30.04.2012, 02:20 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
   const int size = 100;
   int a[ size ] = { 0 };
   
   int tmp = 0,
       start = 0,
       end = 0,
       S = 0,
       i = 0;
   
   srand( time( NULL ));
   
   for ( i = 0; i < 100; i++ )
      a[ i ] = rand() % 11;
   
   for ( i = 1; i < size; i++ ) {
      if ( a[ i ] > a[ i - 1 ] ) {
         tmp = i - 1;
         
         while ( i < size && a[ i ] > a[ i - 1 ] )
            i++;
         
         if ( i - tmp > S ) {
            S = i - tmp;
            start = tmp;
            end = i - 1;
         }
      }
   }
0
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 57
30.04.2012, 10:55  [ТС] 6
Цитата Сообщение от Toshkarik Посмотреть сообщение
Вот что пришло в голову на ночь глядя
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
   const int size = 100;
   int a[ size ] = { 0 };
   
   int tmp = 0,
       start = 0,
       end = 0,
       S = 0,
       i = 0;
   
   srand( time( NULL ));
   
   for ( i = 0; i < 100; i++ )
      a[ i ] = rand() % 11;
   
   for ( i = 1; i < size; i++ ) {
      if ( a[ i ] > a[ i - 1 ] ) {
         tmp = i - 1;
         
         while ( i < size && a[ i ] > a[ i - 1 ] )
            i++;
         
         if ( i - tmp > S ) {
            S = i - tmp;
            start = tmp;
            end = i - 1;
         }
      }
   }
Смотрите, в принципе все отлично! Но, он показывает начало и конец пути индексы массива, т.е. начало 6 конец 8, а на самом деле начало то 7 а конец 9, потому что массив начинается от 0 элемента, а трасса с первого километра. Как исправить?
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
30.04.2012, 11:08 7
Прибавьте по единице к началу и к концу Ну или увеличьте размер размер до 101, а цикл начните с 2.
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
   const int size = 101;
   int a[ size ] = { 0 };
   
   int tmp = 0,
       start = 0,
       end = 0,
       S = 0,
       i = 0;
   
   srand( time( NULL ));
   
   for ( i = 0; i < size; i++ )
      a[ i ] = rand() % 11;
   
   for ( i = 2; i < size; i++ ) {
      if ( a[ i ] > a[ i - 1 ] ) {
         tmp = i - 1;
         
         while ( i < size && a[ i ] > a[ i - 1 ] )
            i++;
         
         if ( i - tmp > S ) {
            S = i - tmp;
            start = tmp;
            end = i - 1;
         }
      }
   }
1
30.04.2012, 11:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2012, 11:08
Помогаю со студенческими работами здесь

Написать функцию для определения максимального и минимального из чисел
Написать программу в с++: Дан текстовый файл с неизвестным количеством вещественных чисел....

Написать программу для определения максимального элемента массива А[20]
Здравствуйте Недавно начал изучать С++ Ну и столкнулся с проблемным заданием Очень срочно нужно...

Программа определения максимального по модулю чисел из массива вещественных чисел
Помогите пожалуйста, если не сильно сложно. Разработать программу определения максимального по...

Программа определения максимального по модулю чисел из массива вещественных чисел
Помогите пожалуйста, если не сильно сложно. Разработать программу определения максимального по...


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

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