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

Ошибка в выводе при использовании циклов for - C++

Восстановить пароль Регистрация
 
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
02.10.2015, 18:00     Ошибка в выводе при использовании циклов for #1
Всем привет!
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
double amount;            // сумма на счёте в конце года
    double principal = 24.00; // исходная сумма
    double rate;          // процентная ставка
 
    cout << "Year" << setw(30) << "Amount on deposit" << endl;
 
    cout << fixed << setprecision(2);
 
    for (int i = 0; i < 2; i++)
    {
        switch (i)
        {
        case 0:
            rate = 0.05;
            break;
        case 1:
            rate = 0.10;
            break;
        }
        
        for (int year = 1; year <= 389; year++)
        {
            amount = principal * pow(1.0 + rate, year);
 
            cout << setw(4) << year << setw(30) << amount << "$\n";
        }
 
        cout << "Rate: 10%" << endl;
    }
 
    system("pause");
    return 0;
Хотел сделать так: сначала узнаем сумму денежных средств за каждый год, при условии, что ставка в 5 %, а потом еще вывести то же самое, только при условии, что ставка в 10%.
Вывод в консоль у меня идёт только с 92 по счёту года. И второй итерации внешнего for не наблюдается. И вроде как, всё высчитывается при ставке в 10%, хоть и должно высчитываться при ставке в 5%. Со свитчем накосячил?
И что на счёт цикла? Где ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2015, 18:00     Ошибка в выводе при использовании циклов for
Посмотрите здесь:

C++ Ошибка компилятора при выводе string
Ошибка при выводе строки C++
ошибка при выводе в последовательности sn на с++ C++
Развязывание задачи при использовании циклов C++
Ошибка при выводе на экран C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriy007
65 / 10 / 2
Регистрация: 27.10.2014
Сообщений: 341
02.10.2015, 18:22     Ошибка в выводе при использовании циклов for #2
Считает же правильно, просто выводит у тебя во всех итерация цикла строка
C++
1
cout << "Rate: 10%" << endl;
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
02.10.2015, 18:29  [ТС]     Ошибка в выводе при использовании циклов for #3
Цитата Сообщение от valeriy007 Посмотреть сообщение
Считает же правильно, просто выводит у тебя во всех итерация цикла строка
Это понятно, на счёт строки. Но вывод в консоль у меня "левый" какой-то.
valeriy007
65 / 10 / 2
Регистрация: 27.10.2014
Сообщений: 341
02.10.2015, 18:33     Ошибка в выводе при использовании циклов for #4
В консоль выводится 400 раз каждый на новую строку и так 2 раза, мб она очищается после первой итерации.
Попробуй
C++
1
cout << setw(4) << year << setw(30) << amount << flush << endl;
или вовсе убери "$\n" и проверь выведет ли все.

Добавлено через 1 минуту
Цитата Сообщение от wismbel Посмотреть сообщение
Но вывод в консоль у меня "левый" какой-то.
В смысле левый? у меня выводило в конечном результате все со второй итерации
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
02.10.2015, 19:11  [ТС]     Ошибка в выводе при использовании циклов for #5

Не по теме:

Цитата Сообщение от valeriy007 Посмотреть сообщение
В смысле левый?
Чуть позже отпишусь.



Добавлено через 2 минуты
valeriy007, разве endl - это не тот же flush только еще и перевод строки?
Цитата Сообщение от valeriy007 Посмотреть сообщение
В смысле левый?
У меня в консоль вывод идет только с 91 года. year = 91.
91
92
93
...
389.

Мало того, что отчёт с 91, так еще только одна итерация.

Добавлено через 12 минут
Такое ощущение, как-будто всё считается правильно, и два раза как раз цикл прогоняется, но всё в консоль не выводится.

Добавлено через 13 минут
Скомпилировал свой код на одном из сайтов - всё хорошо. Полный вывод значений.
А у меня на ПК всё плохо
SuperKir
103 / 103 / 58
Регистрация: 10.03.2015
Сообщений: 444
02.10.2015, 19:13     Ошибка в выводе при использовании циклов for #6
wismbel, Поставь бряки и увидишь, что выводится всё. Просто потом места не хватает и верх затирается.
Ошибка в выводе при использовании циклов for

П.с. выводи в файл, тогда точно увидишь всё
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
02.10.2015, 19:18  [ТС]     Ошибка в выводе при использовании циклов for #7
Цитата Сообщение от SuperKir Посмотреть сообщение
Поставь бряки и увидишь, что выводится всё. Просто потом места не хватает и верх затирается.
Окей, это я понял, а как решается?
SuperKir
103 / 103 / 58
Регистрация: 10.03.2015
Сообщений: 444
02.10.2015, 19:19     Ошибка в выводе при использовании циклов for #8
wismbel, выведи в файл, консоль не резиновая
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
02.10.2015, 19:21  [ТС]     Ошибка в выводе при использовании циклов for #9
Цитата Сообщение от SuperKir Посмотреть сообщение
выведи в файл, консоль не резиновая
Ясно, спасибо, я просто думал, что консоль можно как-то "растянуть" в таком случае
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
05.10.2015, 13:27  [ТС]     Ошибка в выводе при использовании циклов for #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
#include <QCoreApplication>
 
#include <iostream>
using std::cout;
 
#include <cstdlib>
using std::rand;
 
#include <iomanip>
using std::setw;
 
int main(int argc, char *argv[])
{
    for(int i = 0; i < 20; i++)
    {
        std::cout << std::setw(10) << (1 + std::rand() % 5);
 
        if(i % 5 == 0)
            cout << "\n";
    }
 
    QCoreApplication a(argc, argv);
 
    return a.exec();
}
Почему вывод такой? Ubuntu. На Винде было всё нормально.
Миниатюры
Ошибка в выводе при использовании циклов for  
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1858 / 1654 / 577
Регистрация: 14.05.2014
Сообщений: 4,751
Записей в блоге: 1
Завершенные тесты: 5
05.10.2015, 13:39     Ошибка в выводе при использовании циклов for #11
Цитата Сообщение от wismbel Посмотреть сообщение
C++
1
2
if(i % 5 == 0)
    cout << "\n";
потому что 0 % 5 == 0. И не важно на винде, маке или линуксе
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2015, 13:47     Ошибка в выводе при использовании циклов for
Еще ссылки по теме:

Ошибка при выводе C++
C++ Ошибка при использовании %
Ошибка при выводе строки C++

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

Или воспользуйтесь поиском по форуму:
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
05.10.2015, 13:47  [ТС]     Ошибка в выводе при использовании циклов for #12
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
потому что 0 % 5 == 0. И не важно на винде, маке или линуксе
Действительно. Спасибо. Не так инициализировал счётчик.
Yandex
Объявления
05.10.2015, 13:47     Ошибка в выводе при использовании циклов for
Ответ Создать тему
Опции темы

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