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

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

Войти
Регистрация
Восстановить пароль
 
iceglen
24 / 24 / 2
Регистрация: 24.06.2013
Сообщений: 105
#1

счетчик цикла for - C++

15.09.2013, 21:36. Просмотров 582. Ответов 4
Метки нет (Все метки)

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


В целях обучения попробовал выделить память, используя new и delete для всех переменных (в том числе и i).

При таком виде программа не работает (компилится без ошибок).

Кликните здесь для просмотра всего текста
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 <iostream>
 
using namespace std;
 
int main()
{
  int * dbalance = new int;
  *dbalance = 100;
  int * cbalance = new int;
  *cbalance = *dbalance;
  int * i = new int;
  for (*i = 0; *cbalance <= *dbalance; *i++)
  {
    cout << *i << " year:" << endl;
    cout << "\tCleos balance is " << *cbalance << endl;
    cout << "\tDafnas balance is " << *dbalance << endl;
    *dbalance = *dbalance + 0.1 * 100;
    *cbalance = *cbalance + 0.05 * (*cbalance);
  }
  cout << "On the " << *i << " year Cleo will have more money than Dafna." << endl;
  cout << "\tCleos current balance is " << *cbalance << endl;
  cout << "\tDafnas current balance is " << *dbalance << endl;
  delete dbalance;
  delete cbalance;
  delete i;
  return 0;
}


При небольшом изменении программа работает нормально.

Кликните здесь для просмотра всего текста
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>
 
using namespace std;
 
int main()
{
  int * dbalance = new int;
  *dbalance = 100;
  int * cbalance = new int;
  *cbalance = *dbalance;
  int i;
  for (i = 0; *cbalance <= *dbalance; i++)
  {
    cout << i << " year:" << endl;
    cout << "\tCleos balance is " << *cbalance << endl;
    cout << "\tDafnas balance is " << *dbalance << endl;
    *dbalance = *dbalance + 0.1 * 100;
    *cbalance = *cbalance + 0.05 * (*cbalance);
  }
  cout << "On the " << i << " year Cleo will have more money than Dafna." << endl;
  cout << "\tCleos current balance is " << *cbalance << endl;
  cout << "\tDafnas current balance is " << *dbalance << endl;
  delete dbalance;
  delete cbalance;
  return 0;
}


Можно ли выделять для счетчиков память через new и delete? Если да, то в чем ошибка в первом варианте?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 21:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос счетчик цикла for (C++):

Как создать указатель на счетчик цикла for? - C++
Например, нужно создать указатель на счетчик і. Непонятно как это организовать :-| for(int i = 0; i &lt; N; i++) { for(int j=0; j &lt; N;...

Почему при выходе из цикла while переменная счетчик увеличивается на единицу? - C++
Есть такой код: #include &lt;iostream&gt; using namespace std; int main() { int x = 30; cout&lt;&lt;&quot;Внешнее значение: &quot;&lt;&lt;x&lt;&lt;endl;...

Применение цикла if для определения простых чисел. If внутри цикла for - C++
Доброго времени суток, подскажите пожалуйста, в чем тут дело. С кодом все хорошо, все работает, просто я пытаюсь докопаться до сути и...

Используя одну переменную цикла укажите возможные способы объявления заголовка счетного цикла. - C++
Используя одну переменную цикла укажите возможные способы объявления заголовка счетного цикла.

вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с использованием одного цикла и что бы все printf были только в теле цикла - C++
вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с использованием одного цикла и что бы все printf были только в теле...

Нахождение отрицательного цикла в графе и вывод цикла - C++
Вот программа по нахождению отрицательного цикла в графе и вывод цикла void Floyd(int GR, int parents , int V) { int checking; int...

4
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,930
15.09.2013, 21:39 #2
Цитата Сообщение от iceglen Посмотреть сообщение
Можно ли выделять для счетчиков память через new и delete?
можно а зачем?
Цитата Сообщение от iceglen Посмотреть сообщение
*i++
разбери эту запись
1
iceglen
24 / 24 / 2
Регистрация: 24.06.2013
Сообщений: 105
15.09.2013, 21:41  [ТС] #3
Чувстовал же, что там ошибка Спасибо, прочитаю про инкремент еще разок.
0
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,930
15.09.2013, 21:55 #4
можешь записать так
C++
1
*i=*i+1;
но зачем? чем тебе стек то не угодил? любое выделение/ удаление памяти лишнее время
0
iceglen
24 / 24 / 2
Регистрация: 24.06.2013
Сообщений: 105
15.09.2013, 22:00  [ТС] #5
Заменил на (*i)++. Против стека ничего не имею. Просто в целях самообучения
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 22:00
Привет! Вот еще темы с ответами:

Выполните, пожалуйста, задание, при этом вместо оператора цикла while используйте оператора цикла do_while - C++
Используя оператор цикла while, напишите программу для вычисления ниже следующей суммы. // fkdj.cpp: определяет точку входа...

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. - C++
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения...

Счетчик С++ - C++
помогите пожалуйста со счетчиком, вот условие задачи: Сотрудник ГАИ замеряет скорость движения автомашин по трассе. Посчитать, у...

Счетчик - C++
Здравствуйте. есть счетчик int main(){ float b=-1,b1=0.1,b2=1; for(b;b &lt;= b2;b=b+b1) ...


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

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

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