Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
#1

Задача на циклы и ветвления. - C++

16.10.2011, 09:39. Просмотров 1539. Ответов 15
Метки нет (Все метки)

Все доброго утра! Помогите с одним вопросиком.
В ботаническом саду растет волшебное дерево. В начале 2010 года его высота составляла L см. По неизвестному стечению обстоятельств каждый четный год оно вырастает на p %, а каждый нечетный – на q %. В конце какого года ежегодный прирост высоты дерева превысит величину в x см? Получить ответ для L = 200 см, p = 5 %, q = 3 %, x = 50 см

Как записать что бы определял чётный и не чётный вот мой пример что я на мудрил:

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 <iostream.h>
int main()
 
{
    double l, p, q, d, n, f, s, u, i, Sum;
    cout << "Enter length:\";
    cin >> l;
    cout << "Enter percent on even years:\n";
    cin >> p;
    cout << "Enter percent on odd years:\n";
    cin >> q;
    cout << "Through how many years:\n";
 
    n=2010 
    u=n+d // 2010+d
    b=u%10 // откусываем первую цифру
    x=l/100 //сколько в 1%
    f=p*x // сколько прибавится по чётным
    s=q*x // сколько прибавится по нечётным
    i=1
    
    while (n==u)
    {
         if  (b==0 || b==2 || b==4 || b==6 || b==8)
          n+i;
              l+=p;
             else (b==1 || b==3 || b==5 || b==7 || b==9)
              n+i;
          l+=q;      
    }
}

если честно я что то запутался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 09:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на циклы и ветвления. (C++):

Задача на циклы и ветвления. - C++
Всем доброго дня! помогите пожалуйста с задачей. Выяснить, является ли заданное число m членом геометрической прогрессии, первый член...

Задача на циклы и ветвления. - C++
Народ вот у меня такая задача: По году в номере группы определить, на каком курсе учится студент. Я немного не могу понять как сделать...

Циклы и ветвления - C++
помогите плииииз мне сегодня в 8 утра сдавать) 4. Вывести на консоль простые числа, начиная с 2, заканчивая ближайшим простым...

Ветвления и циклы - C++
Пожалуйста помогите сделать!очень нужно:umnik:

Циклы и ветвления - C++
Добрый день! Самостоятельно изучаю С++ и вот дошёл до циклов и ветвлений. Необходимо сделать несколько упражнений по данной теме. Застрял...

Циклы и структуры ветвления - C++
- Структуры с ветвлением. - Циклические структуры. Нужен ответ как будет выводится на экране программы.

15
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.10.2011, 09:43 #2
Цитата Сообщение от Kovar Посмотреть сообщение
Как записать что бы определял чётный и не чётный
C++
1
2
3
4
if(num % 2)//нечетное
    ...
else//четное
    ....
0
Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 10:14  [ТС] #3
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
4
if(num % 2)//нечетное
    ...
else//четное
    ....
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
#include <iostream>
using namespace std;
int main()
 
{
        int l, p, q, d, n, f, s, u, i, b, x;
        cout << "Enter length:\n";
        cin >> l;
        cout << "Enter percent on even years:\n";
        cin >> p;
        cout << "Enter percent on odd years:\n";
        cin >> q;
        cout << "Through how many years:\n";
 
        n=2010; 
        u=n+d; // 2010+d
        b=u%10; // откусываем первую цифру
        x=l/100; //сколько в 1%
        f=p*x; // сколько прибавится по чётным
        s=q*x; // сколько прибавится по нечётным
        i=1;
        
    while (n==u)
        
             if  (b % 2)
                  n+i;
                  l+=f;
         else 
                  n+i;
                  l+=s;       
        
        cout << "L=" << l << endl;
        return 0;
Получается что то типа такого?
ток пишет Ошибка 4 error C2181: недопустимый else без парного if
0
amor1k
Студент
148 / 148 / 24
Регистрация: 18.01.2011
Сообщений: 469
16.10.2011, 10:22 #4
C++
1
2
3
4
5
6
7
8
9
10
if  (b % 2)
       {
             n+i;
             l+=f;
       }
       else 
       {
              n+i;
              l+=s;
        }
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
16.10.2011, 10:26 #5
Скобочки не забываем
C++
1
2
3
4
5
6
7
8
9
10
             if  (b % 2)
             {
                  n+i;
                  l+=f;
             }
             else 
             {
                  n+i;
                  l+=s; 
             }
0
amor1k
Студент
148 / 148 / 24
Регистрация: 18.01.2011
Сообщений: 469
16.10.2011, 10:28 #6
Да ты зрячий
0
Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 11:19  [ТС] #7
Ааааааа.... всё равно не правильная задача решена....

Добавлено через 45 минут
ЧТо я не так делаю подскажите?
0
amor1k
Студент
148 / 148 / 24
Регистрация: 18.01.2011
Сообщений: 469
16.10.2011, 11:22 #8
в чем она не правильно работает?
0
Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 11:58  [ТС] #9
Цитата Сообщение от amor1k Посмотреть сообщение
в чем она не правильно работает?
Она не правильно складывает что то ааааааааааааааааа....

Добавлено через 6 минут
Я в вожу L=200 ответ тот же 200
0
LostCoast
82 / 82 / 5
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
16.10.2011, 12:12 #10
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
#include <iostream>
using namespace std;
int main()
 
{
        int l, p, q, d = 0, n, f, s, u, i, b, x;
        cout << "Enter length: ";
        cin >> l;
        cout << "Enter percent on even years: ";
        cin >> p;
        cout << "Enter percent on odd years: ";
        cin >> q;
        cout << "Through how many years: ";
 
        n = 2010; 
        u= n + d; // 2010+d
        b= u % 10; // откусываем первую цифру
        x= l / 100; //сколько в 1%
        f= p * x; // сколько прибавится по чётным
        s= q * x; // сколько прибавится по нечётным
        i = 1;
        
    while (n==u) 
        
             if  (b % 2) {
                  n += i;
                  l += f;
             }
             else {
                  n += i;
                  l += s;
             }
        ;
        
     cout << " L = " << l << endl;
     return 0;
}
проверил на вс, теперь все работает(правда не знаю так или не так)
0
Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 12:46  [ТС] #11
Цитата Сообщение от LostCoast Посмотреть сообщение
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
#include <iostream>
using namespace std;
int main()
 
{
        int l, p, q, d = 0, n, f, s, u, i, b, x;
        cout << "Enter length: ";
        cin >> l;
        cout << "Enter percent on even years: ";
        cin >> p;
        cout << "Enter percent on odd years: ";
        cin >> q;
        cout << "Through how many years: ";
 
        n = 2010; 
        u= n + d; // 2010+d
        b= u % 10; // откусываем первую цифру
        x= l / 100; //сколько в 1%
        f= p * x; // сколько прибавится по чётным
        s= q * x; // сколько прибавится по нечётным
        i = 1;
        
    while (n==u) 
        
             if  (b % 2) {
                  n += i;
                  l += f;
             }
             else {
                  n += i;
                  l += s;
             }
        ;
        
     cout << " L = " << l << endl;
     return 0;
}
проверил на вс, теперь все работает(правда не знаю так или не так)
Я в записи самой нашёл ещё ошибку. cout << "Through how many years: "; не определён вот и всё катится не туда когда его в водим получается вот так
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
#include <iostream>
using namespace std;
int main()
 
{
        int l, p, q, d, n, f, s, u, i, b, x;
        cout << "Enter length: ";
        cin >> l;
        cout << "Enter percent on even years: ";
        cin >> p;
        cout << "Enter percent on odd years: ";
        cin >> q;
        cout << "Through how many years: ";
        cin >> d;
 
        n=2010; 
        u=n+d; // 2010+d
        x=l/100; //сколько в 1%
        f=p*x; // сколько прибавится по чётным
        s=q*x; // сколько прибавится по нечётным
        
    while (n<=u)
        
             if  (u % 2)
             {
                  n++;
                  l=s+l;
             }
             else
             {
                  n++;
                  l=f+l;       
             }
        
        cout << "L= " << l;
        return 0;
}
Решение идёт но не правильное

Добавлено через 24 минуты
Так я ещё пару ошибок нашёл отладкой

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
#include <iostream>
using namespace std;
int main()
 
{
        int l, p, q, d, n, f, s, u, x;
        cout << "Enter length: ";
        cin >> l;
        cout << "Enter percent on even years: ";
        cin >> p;
        cout << "Enter percent on odd years: ";
        cin >> q;
        cout << "Through how many years: ";
        cin >> d;
 
        n=2010; 
        u=n+d; // 2010+d
        x=l/100; //сколько в 1%
        f=p*x; // сколько прибавится по чётным
        s=q*x; // сколько прибавится по нечётным
        
    while (n<=u)
        
             if  (n % 2)
             {
                  n++;
                  l=s+l;
             }
             else
             {
                  n++;
                  l=f+l;       
             }
        
        cout << "L= " << l;
        return 0;
}
вот код если кому надо и ещё один вопрос по задаче ввёл данные у меня ответ 145 а должен быть 140 как сделать что бы он 2010 год не брал в счёт?
0
LostCoast
82 / 82 / 5
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
16.10.2011, 12:59 #12
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 <iostream>
using namespace std;
int main()
 
{
        int l, p, q, d = 0, n, f, s, u, b, x;
        cout << "Enter length: ";
        cin >> l;
        cout << "Enter percent on even years: ";
        cin >> p;
        cout << "Enter percent on odd years: ";
        cin >> q;
        cout << "Through how many years: ";
        cin >> d;
        n = 2010; 
        u = n + d; // 2010 + d
        b = u % 10; // откусываем первую цифру
        x = l / 100; //сколько в 1%
        f = p * x; // сколько прибавится по чётным
        s = q * x; // сколько прибавится по нечётным
        
    while (n != u) 
             if  (b % 2) {
                 
                  n++;
                  l += f;
             }
             else {
                  n++;
                  l += s;
             }
        
         ;
     cout << " L = " << l << endl;
     return 0;
}
заработало

Добавлено через 5 минут
Цитата Сообщение от Kovar Посмотреть сообщение
вот код если кому надо и ещё один вопрос по задаче ввёл данные у меня ответ 145 а должен быть 140 как сделать что бы он 2010 год не брал в счёт?
просто до цикла увеличь n++ и тогда он не будет брать в учет первый год.
1
Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 13:06  [ТС] #13
Цитата Сообщение от LostCoast Посмотреть сообщение
d = 0
о_О мы вводим d


Цитата Сообщение от LostCoast Посмотреть сообщение
!=
мне кажется за место этого знака <= лучше поставить так правильнее будет

Добавлено через 3 минуты
Цитата Сообщение от LostCoast Посмотреть сообщение
заработало
не правильно считает

Добавлено через 2 минуты
Всё спасибо исправил ошибки отдалчик хорошая вещь)
0
LostCoast
82 / 82 / 5
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
16.10.2011, 13:15 #14
Цитата Сообщение от Kovar Посмотреть сообщение
d = 0
в самом первом твоем варианте без cin >> d; компилятор говорил об неинициализированной d поэтому ставил её d = 0 щас конечно можно стереть.


Цитата Сообщение от Kovar Посмотреть сообщение
!=
мне кажется за место этого знака <= лучше поставить так правильнее будет
а мне кажется, что для грамотного использования проги нужно вместо while использовать do while, так как если ты уже хочешь чтобы 1 год не учитывался, а что если ввести 1 год для растения? прога выдаст ответ без изменений.
0
Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 14:12  [ТС] #15
Да точно спасибо за совет
0
16.10.2011, 14:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2011, 14:12
Привет! Вот еще темы с ответами:

Циклы и операторы ветвления - C++
Добрый вечер!Помогите с задачей!Ни как правильно её решить не смог... По заданию Программа должна использовать цикл для запроса доходов и...

Циклы, ветвления, проверка на тип - C++
Здравствуйте! Есть код - по условию выводит разные фигуры после запроса, 1 - квадрат, 2 - треугольник, 3 - ромб. Подскажите пожалуйста как...

Задача на использование ветвления (if) - C++
Помогите пожалуйста решить: 1. ВЕТВЛЕНИЯ Выполнить задания двумя способами: с использованием оператора if и с использованием...

Задача на еолимпе, использование ветвления - C++
Вот ссылка на задачу {deleted}. П 3.19. Правил Запрещено создавать темы в виде ссылок на задания или коды программ, расположенные на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru