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

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

Войти
Регистрация
Восстановить пароль
 
iPhonia
2 / 2 / 0
Регистрация: 11.03.2012
Сообщений: 48
#1

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

20.07.2012, 17:46. Просмотров 891. Ответов 3
Метки нет (Все метки)

Вот условие задачи:

Дафна инвестировала $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++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;fstream&gt; using...

Обход упорядоченного дерева. Не могу понять на что ругается прогорамма... Ошибок вроде как нет... - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; #include &lt;string&gt; #include &lt;vector&gt; #include...

Программа без синтаксических ошибок, но иногда считает неправильно - C++
Здравствуйте помогите пожалусто мене новичку разобраться в чом ошибка . Условие : Игра «кубики». Условие: имеется два игральных кубика...

Ошибки вроде бы нет, но работает не правильно! - C++
Христос Воскресе! Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;cstdlib&gt; using namespace std;...

Не работает программа, ошибок компиляции нет. - C++
Есть вот такая программа: поменять местами строки в матрице с мин и макс значениями. Писал в вижуал С++. #include &lt;stdio.h&gt; #include...

Явных ошибок нет, но программа не работает - C++
Задание было такое: 1. Разработать программу, которая создает массив, количество элементов которого задается пользователем. Все элементы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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);
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2014, 14:25
Привет! Вот еще темы с ответами:

Вроде переполнение, а вроде бы и нет - C++
День добрый! Интересует, почему си не дает мне сделать следующую штуку. int a = 4999998848; cout &lt;&lt; a*2 &lt;&lt; endl; По...

Почему код не работает хотя ошибок нет? Что-то не так с выделением памяти? - C++
#include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int n = 0; double a, b; ...

В каких строках кода нет синтаксических ошибок? - C (СИ)
$10. В каких строках кода нет синтаксических ошибок: (обоснуйте ответ) int main() { long char c = 'a'; //1 long int x = -1; ...

Почему здесь не работает скрипт, очень простой, ошибок на мой взгляд вроде нет - JavaScript
var login = prompt('Введите логин',''); If (login == 'Черный властелин') { var pass = prompt('Введите...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.03.2014, 14:25
Ответ Создать тему
Опции темы

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