Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Kovar
 Аватар для Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 09:39     Задача на циклы и ветвления. #1
Все доброго утра! Помогите с одним вопросиком.
В ботаническом саду растет волшебное дерево. В начале 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;      
    }
}

если честно я что то запутался
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 09:39     Задача на циклы и ветвления.
Посмотрите здесь:

C++ циклы и ветвления
C++ Циклы и операторы ветвления
Задача на циклы и ветвления. C++
C++ Задача на циклы и ветвления.
циклы и ветвления C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.10.2011, 09:43     Задача на циклы и ветвления. #2
Цитата Сообщение от Kovar Посмотреть сообщение
Как записать что бы определял чётный и не чётный
C++
1
2
3
4
if(num % 2)//нечетное
    ...
else//четное
    ....
Kovar
 Аватар для 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
amor1k
Студент
 Аватар для amor1k
147 / 147 / 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;
        }
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
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; 
             }
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
16.10.2011, 10:28     Задача на циклы и ветвления. #6
Да ты зрячий
Kovar
 Аватар для Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 11:19  [ТС]     Задача на циклы и ветвления. #7
Ааааааа.... всё равно не правильная задача решена....

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

Добавлено через 6 минут
Я в вожу L=200 ответ тот же 200
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;
}
проверил на вс, теперь все работает(правда не знаю так или не так)
Kovar
 Аватар для 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 год не брал в счёт?
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++ и тогда он не будет брать в учет первый год.
Kovar
 Аватар для Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 13:06  [ТС]     Задача на циклы и ветвления. #13
Цитата Сообщение от LostCoast Посмотреть сообщение
d = 0
о_О мы вводим d


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

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

Добавлено через 2 минуты
Всё спасибо исправил ошибки отдалчик хорошая вещь)
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 год для растения? прога выдаст ответ без изменений.
Kovar
 Аватар для Kovar
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 41
16.10.2011, 14:12  [ТС]     Задача на циклы и ветвления. #15
Да точно спасибо за совет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 15:29     Задача на циклы и ветвления.
Еще ссылки по теме:

C++ Задача на использование ветвления (if)
Ветвления и циклы C++
Циклы и структуры ветвления C++

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

Или воспользуйтесь поиском по форуму:
Gl0b
Сообщений: n/a
03.06.2013, 15:29     Задача на циклы и ветвления. #16
У меня как то так получилось


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main(void)
{
    int iYear=2010
    int a=200;
    int s=5;
    int d=3;
    int x =50;
    int iS=a*s/100;
    int iD=a*d/100;
    int iTer=iYear;
    int iLen=0;
    while(x>iLen)
    {
        iTer++;
        iLen+=iTer%2==0?iS:iD;
    }
    printf("%d",iTer);
    getchar();
    return 0;
}
Yandex
Объявления
03.06.2013, 15:29     Задача на циклы и ветвления.
Ответ Создать тему
Опции темы

Текущее время: 19:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru