Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
ink-mate
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 30
1

Программа не останавливается в нужный момент

21.11.2014, 11:01. Просмотров 842. Ответов 5
Метки нет (Все метки)

Программа должна выводить близнецов не выше числа n*2, но она это делает.

Вот условие, если кому то нужно: "Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1,.....,2n близнецы, т.е. простые числа, разность между которыми равна двум.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
bool simple(int n) {
    int t = n>>1;// t = n/2.
    for(int i=2;i<t;i++)
        if( !(n%i) ) return 0;
    return 1;
};
int main() {
    int n;
    int t;
    printf("Vvedite n : " );
    scanf("%d",&n);
    if( !(n%2)) n++; 
    t= n <<1;
    printf("Bliznetsi : \n");
    for(int i=n;i<t;i+=2) 
        if(  (simple(i)) && (simple(i+2)) ) 
            printf("%d %d\n",i,i+2);
    getch();
};
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 11:01
Ответы с готовыми решениями:

После ввода чисел программа останавливается
После ввода чисел программа просто останавливается. #include &lt;iostream&gt;...

Программа останавливается без ошибок на fopen
Добрый вечер. Программа останавливается без ошибок или сообщений дебагера на...

Программа не выдаёт нужный ответ
Задание. Задан двумерный массив С из 2-х строк и 4-х столбцов. Составить...

Программа останавливается после ввода имени файла
В файле данные типа 1 2 45 1 3 60 1 4 60 и их надо считать в map и...

По Лафору пример, программа останавливается на строке delete[] name;
#include &lt;iostream&gt; #include &lt;cstring&gt; char *getname(void); using...

5
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
21.11.2014, 11:08 2
Лучший ответ Сообщение было отмечено ink-mate как решение

Решение

Цитата Сообщение от ink-mate Посмотреть сообщение
for(int i=n;i<t;i+=2)
for(int i=n;i<t-2;i+=2)

Добавлено через 1 минуту
Цитата Сообщение от ink-mate Посмотреть сообщение
Программа должна выводить
Цитата Сообщение от ink-mate Посмотреть сообщение
но она это делает.
Негодница
1
ink-mate
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 30
21.11.2014, 11:12  [ТС] 3
@Kerry Jr, не помогло, если ввести 6 выводит 11&13 | 17&19

Добавлено через 2 минуты
работает, спасибо.
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
21.11.2014, 11:21 4
ink-mate,
C++
1
if( !(n%2)) n++;
если ввести 6, то n превратится в 7, а 7 * 2 = 14, поэтому 11&13 - это верный вариант. Чтобы такого не было, сначала
C++
1
t = n << 1;
, а затем уже
C++
1
if( !(n%2)) n++;
1
ink-mate
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 30
21.11.2014, 11:53  [ТС] 5
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
for(int i=n;i<t-2;i+=2)
Может поможешь перевести с паскаля на С++ вот это?
Pascal
1
sqrt(sqr(r+h)-sqr(r)):0:3
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
21.11.2014, 12:29 6
С Паскалем не очень дружу, поэтому могу ошибиться
Цитата Сообщение от ink-mate Посмотреть сообщение
Pascal
1
sqrt(sqr(r+h)-sqr(r)):0:3
C++
1
floor(1000 * sqrt((r+h)*(r+h) - r*r))/1000.;
для sqrt и floor нужно подключать <math.h> - для С, <cmath> - для С++.
0
21.11.2014, 12:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2014, 12:29

Программа вычисляющая интерполяционный многочлен Ньютона, останавливается при компиляции на 12 строке
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include&lt;math.h&gt;...

Какой момент не учитывает программа?
Здравствуйте. Задача - http://acm.timus.ru/problem.aspx?space=1&amp;num=1025 Не...

Подскажите почему после первого cout программа не останавливается для ввода строки, а выводит второй cout
Подскажите почему после первого cout программа не останавливается для ввода...


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

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

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