23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
1

Циклические алгоритмы

09.10.2010, 22:11. Показов 1260. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте, необходимо решить такую задачу:
Известны сведения о количестве осадков, выпавших за каждый день мая. Первого мая осадков не было. Определить, в течение какого количества первых дней месяца непрерывно, начиная с первого мая, осадков не было.
Т.е как обьяснил преподаватель пользователь вводит за каждый день осадки и как только встречается несколько дней где осалдков не было вывести их. Подскажите как это можно написать(преп сказал -масиивы использовать не разрешается)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2010, 22:11
Ответы с готовыми решениями:

Циклические алгоритмы
Как реализовать данную функцию для каждого x, изменяющегося от a до b с шагом h. Значения a, b, h и...

Циклические алгоритмы
Help!!! Задача предполагает применение оператора цикла while языка программирования С++. 1. Найти...

Циклические алгоритмы
Ребята,надо на Borland C++ 5.02 сделать,вот задание:Дано натуральне число n. Обчислити...

С++ (циклические алгоритмы)
Большая просьба помочь с кодом по задаче. Проста, но разбираться в этой теме времени не хватает, а...

7
65 / 18 / 3
Регистрация: 09.10.2010
Сообщений: 97
09.10.2010, 22:16 2
Мы писали что то на подобии того. Если на Си, то нужно через структуру. Но это в ConAp.
0
23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
10.10.2010, 10:18  [ТС] 3
да мне нужно на си... можно поподробней обьяснить? а то я не мысленно не могу представить как это делать... Предполагаю взять оператор цикла for внутри вложить оператор if чтобы он проверял есть ли осадки или нет, а вот как проверить последовательность что несколько дней осадков не было?

Добавлено через 11 часов 58 минут
Подскажите хотя бы приблизительно как там нужно сделать
0
Эксперт С++
5038 / 2617 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
10.10.2010, 10:58 4
Да как-нибудь вот так сделайте. При вводе ноля считается, что осадков не было.
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
#include <stdio.h>
 
#define DAYS 5
 
main()
{
    int i = 0;
    int rain = 0;
    int flag = 0;
    int cnt = 0;
    
    for(i = 1; i < DAYS; ++i) {
        printf("%d day: ", i + 1);
        scanf("%d", &rain);
        
        if(!rain && !flag)
            ++cnt;
        
        else
            flag = 1;
    }
    
    printf("days without rain: %d\n", cnt);
}
0
23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
10.10.2010, 11:21  [ТС] 5
fasked, спасибо но программа работает не совсем корректно Суть программы в том-как только встречается несколько дней где осадков не было вывести их, остальные дни без осадков выводить не надо... Допустим:
1-1
2-0
3-0
4-1
5-0
Ответ количество дней равно двум это так преподователь обьяснилО_о
ну первый день однозначно без осадков- по условию

Добавлено через 11 минут
всмысле если во втрой день поставить единичку программа уже не работает
0
Эксперт С++
5038 / 2617 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
10.10.2010, 11:27 6
Цитата Сообщение от Mogul-kan Посмотреть сообщение
Определить, в течение какого количества первых дней месяца непрерывно, начиная с первого мая, осадков не было.
Простите, но условие "начиная с первого мая" мой мозг отказывается воспринимать по-другому. Я же и привел пример, как посчитать сколько дней начиная с первого мая непрерывно не было осадков.
Цитата Сообщение от Mogul-kan Посмотреть сообщение
Допустим:
1-1
2-0
3-0
4-1
5-0
В этом пример уже во второй день (2-го мая) появляются осадки, значит непрерывность нарушена.
1
23 / 23 / 9
Регистрация: 24.04.2010
Сообщений: 220
10.10.2010, 11:43  [ТС] 7
fasked, Спасибо вам огромное у меня еще один вопрос- правильно ли я разобрался как оно работает?

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
#include <stdio.h>
#include<conio.h>
#define DAYS 7 \\библиотека для работы с днями
 
main()
{
    int i = 0;
    int rain = 0;
    int flag = 0;
    int cnt = 0;
    
    for(i = 1; i < DAYS; ++i)         \\ если i<дня, то прибавляем единичку и выполняем тело цикла
     {                                \\ начало тела цикла
        printf("%d day: ", i + 1);    \\вывести i+1
        scanf("%d", &rain);           \\присвоить это число переменной rain
        
        if(!rain && !flag)            \\ если  (что то???) не равно rain и не равно flag, 
       
            ++cnt;                    \\ то cnt+1
        
        else
            flag = 1;                 \\ иначе flag равен 1
    }                                 \\ конец тели цикла
    
    printf("days without rain: %d\n", cnt); \\вывести cnt
    getch();
}
0
Эксперт С++
5038 / 2617 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
10.10.2010, 12:21 8
Цитата Сообщение от Mogul-kan Посмотреть сообщение
правильно ли я разобрался как оно работает?
Цитата Сообщение от Mogul-kan Посмотреть сообщение
#define DAYS 7
Этой константой я обозначил количество дней, для которых будет произведен ввод осадков. (Если для всего месяца мая, то ставьте здесь 31)
Цитата Сообщение от Mogul-kan Посмотреть сообщение
if(!rain && !flag)
А это значит следующее: если rain равен 0 и flag равен 0.
Блок else сработает, если хотя бы одна из переменных (rain или flag) не будет равна 0.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2010, 12:21
Помогаю со студенческими работами здесь

Циклические Алгоритмы
Написать программу для вычисления значения функции y=cos(x), если значения аргумента x меняются в...

Циклические алгоритмы
Вводится последовательность из N целых чисел (число N вводится пользователем перед вводом...

Циклические алгоритмы.
Циклические алгоритмы. 1. Известны оценки по информатике каждого из 20 учеников класса. Сколько...

Циклические алгоритмы
Дано число D (&gt; 0). Последовательность чисел AN определяется следую- щим образом: A1 = 2, AN = 2 +...


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

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

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