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

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

Войти
Регистрация
Восстановить пароль
 
stv
26 / 26 / 6
Регистрация: 05.03.2010
Сообщений: 171
#1

Не работает с оператором вывода - C++

06.03.2010, 12:08. Просмотров 580. Ответов 11
Метки нет (Все метки)

Я захотел проверить правильность функции rand() в С++. При выполнении программы оператор вывода просто перестает работать, ни cout, ни printf()
C++
1
2
3
4
5
6
7
8
9
10
#include<iostream.h>
#include<stdlib.h>
int main()
{
    int j = 0;
    for(int i=0;i>10000000;i++)
        if(rand()%2==1) j++;
    cout << (j/i)*100 << endl;
    return 0;
}
Мне кажется это происходит при больших вычислениях.
Подскажите, пожалуйста, в чем проблема и как от этого избавиться.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2010, 12:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает с оператором вывода (C++):

Указатель на объект с перегруженным оператором вывода(с наследованием) - C++
Есть два класса: строка(базовый) и комплексное число(производный). В базовом классе есть поле stri (указатель на char). В производном...

Компилятор визуаль студио 2008 с++,выскакивает ошибка с оператором вывода "<< " - C++
#include&lt;iostream&gt; using namespace std; int main(){ int s; cout&lt;&lt;&quot;wwesti cislo: \n&quot;; cin&gt;&gt;s; int zxc; ...

Как работает ссылка с объектами, классами и перегруженным оператором [] - C++
Я тут решил поиграться с кодом и понял что совершенно не догоняю как работает ссылка &amp; Есть код нормально работающий: #include...

Не работает перегрузка вывода - C++
Не могу перегрузить &lt;&lt;. Как только не пробовал, через дружественную функцию тоже не получается. Здесь выдает несовпадение типов, почему?...

Не работает дружественная операция вывода - C++
Доброго времени суток! переписал в MVS 2013 пример из учебника. Имеется класс &quot;Man&quot;, для которого определены два дружественных...

Не работает функция вывода в main() - C++
вот кусок кода, где не работает первый printf(Rus(&quot;Выбери тип календаря&quot;)); - точнее не выводится в консоли. void main() { int q=0,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sergei
1432 / 699 / 41
Регистрация: 22.04.2008
Сообщений: 1,608
06.03.2010, 12:12 #2
Вот так не пробовали?
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream.h>
#include<stdlib.h>
int main()
{
        int j = 0;
        for(int i=0;i<10000000;i++)
         {
                if(rand()%2==1) j++;
              cout << (j/i)*100 << endl;
        }
        return 0;
}
1
stv
26 / 26 / 6
Регистрация: 05.03.2010
Сообщений: 171
06.03.2010, 12:34  [ТС] #3
То же самое. Это не коде ошибка, а в чем-то другом. У меня в другой проге было также. При больших вычислениях не работал оператор вывода
0
easybudda
Модератор
Эксперт CЭксперт С++
9630 / 5578 / 948
Регистрация: 25.07.2009
Сообщений: 10,712
06.03.2010, 12:41 #4
Цитата Сообщение от stv Посмотреть сообщение
for(int i=0;i>10000000;i++)
Ошибка именно в Вашем коде. Цикл должен выполняться, пока i меньше 10000000, а не наоборот.
Если и исправленное не работает, вот так попробуйте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<cstdlib>
int main()
{
        int j = 0;
        for(int i=0;i<10000000;i++)
         {
                if(rand()%2==1) j++;
              std::cout << (j/i)*100 << std::endl;
        }
        return 0;
}
1
stv
26 / 26 / 6
Регистрация: 05.03.2010
Сообщений: 171
06.03.2010, 13:04  [ТС] #5
Все равно не работает. После запуска программы появляется консоль и там только одна строка Press any key to continue
0
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
06.03.2010, 13:21 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
        int j = 0;
        int i=0;
        for(i=1;i>10000000;i++)
                if(rand()%2==1)
                j++;
        cout << (j/i)*100 << endl;
        return 0;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9630 / 5578 / 948
Регистрация: 25.07.2009
Сообщений: 10,712
06.03.2010, 13:23 #7
stv, вообще алгоритм какой-то странный...
Вот тут (j/i) при первом же проходе деление на 0 получается, потому и не работает. Если начинать цикл с единицы
for ( int i = 1; i < 10000000; i++)
будет выводить много нулей, что, кстати, тоже не удивительно - при целочисленном делении (j/i) если i больше, а оно так и будет, будет получаться 0...
Вы бы задачу описали, а то может есть попроще решение...
1
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
06.03.2010, 13:33 #8
Цитата Сообщение от stv Посмотреть сообщение
#include<iostream.h>
#include<stdlib.h>
это ж вроде с а не c++
1
stv
26 / 26 / 6
Регистрация: 05.03.2010
Сообщений: 171
06.03.2010, 13:35  [ТС] #9
Спасибо. Ошибка была в использовании целочисленного деления вместо обычного.
0
easybudda
Модератор
Эксперт CЭксперт С++
9630 / 5578 / 948
Регистрация: 25.07.2009
Сообщений: 10,712
06.03.2010, 13:42 #10
Цитата Сообщение от PointsEqual Посмотреть сообщение
это ж вроде с а не c++
В С библиотеки iostream.h точно нет!
0
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
06.03.2010, 14:03 #11
а #include<stdlib.h>?
0
easybudda
Модератор
Эксперт CЭксперт С++
9630 / 5578 / 948
Регистрация: 25.07.2009
Сообщений: 10,712
06.03.2010, 15:45 #12
PointsEqual, это есть. Но это не значит, что нельзя библиотеки С использовать в программах на С++. Вот наоборот не получится.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2010, 15:45
Привет! Вот еще темы с ответами:

Не работает функция вывода массива - C++
#include &lt;stdio.h&gt; #include &lt;locale&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; void input_mas(int **mas,int n); void...

Не работает самописный манипулятор вывода - C++
#include &lt;iostream&gt; #include &lt;bitset&gt; using namespace std; ostream&amp; bin(ostream&amp; stream, int&amp; num) { stream &lt;&lt;...

Как работает функция вывода элементов списка? - C++
Ребят, объясните в кратце, как работает функция вывода элементов списка(любая), например такая. и если кто знает, дайте...

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


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

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

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