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

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

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

Консольный вывод большого кол-ва чисел - C++

22.06.2013, 16:32. Просмотров 374. Ответов 7
Метки нет (Все метки)

У меня задание написать программу, которая вычисляла бы простые числа до миллиона и выводила в консоль. Программа работает, но я не могу вывести в консоль все числа. Пример: при диапазоне от 2 до 40 000 с пробелом после каждого числа выводятся все числа, но если я ставлю 42 000, то числа выводятся начиная с 1459. Если же я ставлю миллион, то вообще вылетает сообщение об ошибке. Как сделать так, чтобы в консоли выводились все числа? желательно с новой строки. Я пробовал на разных компьютерах и результат один и тот же. Использую dev-c++, пробовал ещё на borland.

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
#include <stdio.h>
#include <conio.h>
 
main()
{
unsigned long N=42000;
unsigned long A[42000];
unsigned long p, f=2;
 
for(p=f; p<N; p++){
      A[p]=true;
                  }
/*Решето Эратосфена*/
do{
for(p=(f*f); p<N; p+=f){
         A[p]=false;
                   }
                   
for(p=f+1; p<N; p++){
         if(A[p]==true){
            f=p;
            break;}
                  }
  }while((p*p)<N);
/*Вывод*/  
for(p=2; p<N; p++){
         if(A[p]==true){
            printf(" %i", p);}
                  }
getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2013, 16:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Консольный вывод большого кол-ва чисел (C++):

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод - C++
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...

Консольный ввод-вывод - C++
При попытке сделать этО!получилось вот это) Может кто нибудь подскажет?ну или конкретно,что почитать про это..? #include&lt;iostream&gt; ...

Низкоуровневый консольный ввод и вывод - C++
Добрый вечер всем форумчанам (может, у кого еще день ;D) Помогите, пожалуйста. Вот написал такой код: for (int i = 0;; i++) { ...

Консольный ввод/вывод целочисленного массива - C++
никак не могу решить, очень плохо понимаю массивы... 1. Консольный ввод/вывод целочисленного массива размером 5*5. 2 ...

Консольный вывод расширенной ASCII и русских букв - C++
Извиняюсь, если подобные темы уже есть, но с помощью поиска получить ответ на свой вопрос я не смог. Собственно, вот и он: Мне...

Консольный ввод/вывод - Перестали работать SetLocale - C++
После того, как переопределил ввод и вывод обратно в консоль freopen(&quot;CON&quot;, &quot;w&quot;, stdout); freopen(&quot;CON&quot;, &quot;r&quot;, stdin); Перестали...

7
Нету имени
177 / 22 / 2
Регистрация: 16.05.2013
Сообщений: 181
22.06.2013, 16:37 #2
а запись в файл исключен?
0
Zegy
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 5
22.06.2013, 16:39  [ТС] #3
Да, только в консоль.
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
22.06.2013, 16:44 #4
Какая может быть польза от выведенных 42 000 чисел в консоль?
0
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
22.06.2013, 16:50 #5
они все выписываются) Просто в конслось все не влазят, и наиболее старые, заменяются теми, чо вывелись более поздно.Но на самом деле они все выводятся.Если хотите проверить, то поставьте задержку при выводе чисел
0
Zegy
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 5
22.06.2013, 17:02  [ТС] #6
@ZaMaZaN4iK, и это никак не исправить? А в чём проблема может быть при диапазоне до миллиона? я тестил, ставя чтобы выводило от 999990 до миллиона и всё равно вылетала ошибка.
0
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
22.06.2013, 17:23 #7
@Zegy, сейчыас обьясню.Кол-во элементов в консоли никак не исправить.Смиритесь.

Что касается ошибки при 1000000, то тут немного сложнее.Вы создаете массив внутри функции.А при создании такого массива, он создается в стеке.Пр маленьком размере массива всё норм, но при большом - идет переполнение стека.Напишите перед обьявлением массива слово static, и всё будет норм.Ну ещё можно обьявить массив глобально, но я этого делать крайне не рекомендую(только если вы не спортивный программист)
0
Zegy
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 5
22.06.2013, 17:37  [ТС] #8
@ZaMaZaN4iK, а, ясно. спасибо.
0
22.06.2013, 17:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2013, 17:37
Привет! Вот еще темы с ответами:

Консольный вывод произведения числа и символа в консоль - C++
Добрый день! Смысл программы, нужно ввести числа и на выходе получить функцию. Вот пример: char x; Ввели 1, 2 и 3 выходе должно...

Консольный ввод/вывод вещественного массива размерои 5*5 - C++
Добрый вечер. Возможно обращаюсь не по адресу, но все же попытка не пытка. Раньше программировал только в Паскале, а тут вдруг в универе...

Заменить консольный ввод-вывод файловым вводом выводом - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; struct Address { string Index; string Country; string...

Неожиданный консольный вывод (упражнения 3 к главе 6 книги Стивена Праты) - C++
:-| Вообщем имеется код (решение 3 упражнения к главе 6 книги Прата): #include &lt;iostream&gt; #include&lt;cstdlib&gt; #include&lt;string&gt; ...


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

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

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