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

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

Войти
Регистрация
Восстановить пароль
 
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
#1

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

02.10.2015, 18:00. Просмотров 263. Ответов 11
Метки нет (Все метки)

Всем привет!
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%. Со свитчем накосячил?
И что на счёт цикла? Где ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2015, 18:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в выводе при использовании циклов for (C++):

Ошибка при использовании нескольких переменных с одним именем в разных уровнях вложенности циклов for - C++
Почему когда создаешь цикл фор по 2 раза и больше раз,и объявляешь там одну и ту же переменную(с одним названием),то не выдаёт ошибку?

Развязывание задачи при использовании циклов - C++

Ошибка при выводе - C++
Не могу найти ошибку в цикле. Суть такая: &quot;вывести на дисплей фамилии и номера групп для всех студентов, включенных в массив, имеющих хотя...

Ошибка при выводе на экран - C++
#include &lt;iostream&gt; using namespace std; int main() { int j =100; while (j &lt;= 110); cout &lt;&lt; endl &lt;&lt; j++; return 0; ...

ошибка при выводе в последовательности sn на с++ - C++
sn- это подсчет суммы ряда не могу понять почему одинаково значение при выполнении программы до 5 считает нормально, а затем зеркально...

Ошибка при выводе символов - C++
Не отображается русскими буквами текст который я ввожу. Помогите, пожалуйста) #include &lt;iostream&gt; #include &lt;string&gt; #include...

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

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

Не по теме:

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



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

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

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

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

П.с. выводи в файл, тогда точно увидишь всё
1
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
02.10.2015, 19:18  [ТС] #7
Цитата Сообщение от SuperKir Посмотреть сообщение
Поставь бряки и увидишь, что выводится всё. Просто потом места не хватает и верх затирается.
Окей, это я понял, а как решается?
0
SuperKir
103 / 103 / 58
Регистрация: 10.03.2015
Сообщений: 444
02.10.2015, 19:19 #8
wismbel, выведи в файл, консоль не резиновая
0
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
02.10.2015, 19:21  [ТС] #9
Цитата Сообщение от SuperKir Посмотреть сообщение
выведи в файл, консоль не резиновая
Ясно, спасибо, я просто думал, что консоль можно как-то "растянуть" в таком случае
0
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
05.10.2015, 13:27  [ТС] #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. На Винде было всё нормально.
0
Миниатюры
Ошибка в выводе при использовании циклов for  
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,865
Записей в блоге: 1
Завершенные тесты: 5
05.10.2015, 13:39 #11
Цитата Сообщение от wismbel Посмотреть сообщение
C++
1
2
if(i % 5 == 0)
    cout << "\n";
потому что 0 % 5 == 0. И не важно на винде, маке или линуксе
1
wismbel
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
05.10.2015, 13:47  [ТС] #12
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
потому что 0 % 5 == 0. И не важно на винде, маке или линуксе
Действительно. Спасибо. Не так инициализировал счётчик.
0
05.10.2015, 13:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2015, 13:47
Привет! Вот еще темы с ответами:

Ошибка при выводе строки - C++
С указателями работаю не в первый раз, но почему-то возникает ошибка во время работы. int main() { char temp = &quot;hello_world&quot;; ...

Ошибка при выводе значения - C++
Здравствуйте,решая задание: Вычислить рекурсивно и нерекурсивно произведение четного количества n (n &lt;= 2) сомножителей следующего вида y...

Ошибка при выводе строки - C++
Подскажите в чем дело?? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; class...

Ошибка при выводе дерева - C++
#include &lt;iostream&gt; using namespace std; struct node { int inf; node *left; node *right; };


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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