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

Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает - C++

Восстановить пароль Регистрация
 
iPhonia
2 / 2 / 0
Регистрация: 11.03.2012
Сообщений: 48
20.07.2012, 17:46     Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает #1
Вот условие задачи:

Дафна инвестировала $100 под простые 10%. Другими словами, ежегодно
инвестиция должна приносить 10% инвестированной суммы, т.е. $10 каждый год:
прибыль = 0,10 х исходный баланс
В то же время Клео инвестировала $100 под сложные 5%. Это значит, что прибыль
составит 5% от текущего баланса, включая предыдущую накопленную прибыль:
прибыль = 0,05 х текущий баланс
Клео зарабатывает 5% от $100 в первый год, что дает ей $105. На следующий
год она зарабатывает 5% от $105, что составляет $5.25, и т.д. Напишите
программу, которая вычислит, сколько лет понадобится для того, чтобы сумма
баланса Клео превысила сумму баланса Дафны, с отображением значений обоих
балансов за каждый год.

Вот мой код:

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
#include <iostream>
 
int main()
 
{
 using namespace std;
 
 float Dafna = 100.0;
 float Cleo = 100.0;
 float Cindex = 1.05;
 int year = 1;
 
 while (Cleo < Dafna)
 {
      Dafna = Dafna + 10;
      Cleo = Cleo * Cindex;
      cout << "Year " << year << ": " << "Dafna's income = " << Dafna << "; Cleo's income = " << Cleo << endl;
      year++;
 }
 
 cout << "Balans Cleo prevusit balans Dafnu 4erez " << year << " let.";
 
 cin.get();
 return 0;   
}
При компиляции выдает: "Balans Cleo prevusit balans Dafnu 4erez 1 let."

Что не так с циклом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2012, 17:46     Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает
Посмотрите здесь:

Программой, содержащая класс, структуры и функции работы с файлами. Синтаксических ошибок нет, но работа прерывается и ничего не выводится на экран. C++
Не работает программа, ошибок компиляции нет. C++
C++ Обход упорядоченного дерева. Не могу понять на что ругается прогорамма... Ошибок вроде как нет...
Ошибки вроде бы нет, но работает не правильно! C++
Программа без синтаксических ошибок, но иногда считает неправильно C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HappyAndRu
13 / 13 / 2
Регистрация: 19.05.2012
Сообщений: 44
20.07.2012, 18:09     Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает #2
Значения Cleo и Dafna изначально равны, соответственно цикл не выполняется, т.к. по условию Cleo должен быть меньше Dafna.

Добавлено через 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
#include <iostream>
 
int main()
 
{
 using namespace std;
 
 float Dafna = 100.0;
 float Cleo = 100.0;
 int year = 0;
 
 do
 {
      Dafna = Dafna + 10;
      Cleo = Cleo * 1.05;
      cout << "Year " << year << ": " << "Dafna's income = " << Dafna << "; Cleo's income = " << Cleo << endl;
      year++;
 }
 while (Cleo < Dafna);
 
 
 cout << "Balans Cleo prevusit balans Dafnu 4erez " << year << " let.";
 
 cin.get();
 return 0;   
}
iPhonia
2 / 2 / 0
Регистрация: 11.03.2012
Сообщений: 48
20.07.2012, 18:19  [ТС]     Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает #3
Тьфу блин, точно. Спасибо!
andreypplk
1 / 1 / 0
Регистрация: 08.02.2014
Сообщений: 27
13.03.2014, 14:25     Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает #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
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// upr5-4.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>'
#include <Windows.h>
 
using namespace std;
 
struct people_account_balans
{
    char name[20];
    double balans;
    double persent;
    bool simple_hard;
};
 
const int cns_in_mans = 12;
 
double persent(double, double, bool);
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout.setf(ios_base::fixed, ios_base::dec);
 
    people_account_balans st_pab[2] =
    {
        { "Dafna", 100.0, 10.0, true },
        { "Kleo", 100.0, 5.0, false }
    };
 
    int year = 1990;
 
    cout << "Пользователи\t" << "Баланс\t"<< "Процент\t" << "Год\n";
    cout << st_pab[0].name << "\t" << st_pab[0].balans << "\t" << st_pab[0].persent << "\t" << year << endl;
    cout << st_pab[1].name << "\t" << st_pab[1].balans << "\t" << st_pab[1].persent << "\t" << year << endl;
    do
    {
        for (int i = 0; i <= 1; i++)                                    //цыкл работы со структурой
        {
            if (st_pab[i].simple_hard == true)                          //определение типа сложности процентов
                {
                    for (int m = 0; m < 12; m++)
                    {
                        st_pab[i].balans = persent(st_pab[i].balans, st_pab[i].persent, st_pab[i].simple_hard);
                    }                                           
                }
            else
                {
                    for (int n = 0; n < 12; n++)
                    {
                        st_pab[i].balans = persent(st_pab[i].balans, st_pab[i].persent, st_pab[i].simple_hard);
                    }                                               
                }
        }
        cout << st_pab[0].name << "\t" << st_pab[0].balans << "\t" << st_pab[0].persent << "\t" << year << endl;
        cout << st_pab[1].name << "\t" << st_pab[1].balans << "\t" << st_pab[1].persent << "\t" << year << endl;
        year++;
    } while (st_pab[0].balans >= st_pab[1].balans);
    
    cin.get();
    return 0;
}
 
double persent(double b, double p, bool v)
{ 
    if (v == true)
    {
        return  b + (p / cns_in_mans);
    }
    else
    {
        return b + (((b / 100) * p) / cns_in_mans);
    }
}
Yandex
Объявления
13.03.2014, 14:25     Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает
Ответ Создать тему
Опции темы

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