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

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

Войти
Регистрация
Восстановить пароль
 
 
mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
#1

Не корректность кода (определение простых чисел) - C++

12.01.2013, 14:30. Просмотров 436. Ответов 15
Метки нет (Все метки)

Здравствуйте. Помогите исправить ошибки.
В программе определяющей простые числа
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
#include <iostream>
 
using namespace std;
 
 
int  rec(int n)
{
    if(n==0||n==1) return 1;
    
   
}
 
int main()
{
    int a,n,i;
    cout << "Input number:";
    cin >> n;
    
    
    a=n/i;
   for (i=2;i<n;i++)
   {
       if (n%i==0)
       {
                  cout << " 4islo ne prostoe, deliteli:" << i;
       }
   }
   cout <<" prostoe\n" << rec(n);
  
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2013, 14:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не корректность кода (определение простых чисел) (C++):

C++, Определение простых чисел, нужен совет - C++
Мне необходимо написать алгоритм определения простых чисел от 1 до 100. Уже три часа переписываю код, ничего не выходит. Пробовал по...

Рефакторинг кода вывода простых чисел - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; int main() { clock_t t = clock(); { std::size_t size = 1000; ...

Не понятен смысл кода вывода простых чисел - C++
Привет, совсем недавно начал изучать С++, читаю книгу, да и до этого как-то были аленькие опыты, так вот, есть код: #include...

Корректность моего кода - C++
В общем, написал я код... Но поскольку опытности не хватает, то хотел спросить корректен ли он? Н-р, я использовал глобальный указатель,...

Проверьте корректность работы кода - C++
#include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;stdio.h&gt; #define b 15 using namespace std; int...

Метод хорд - проверить корректность реализации кода - C++
Приветствую, форумчане. Хочу обратиться к вам за помощью, вот еле написала программу для метода хорд, методом шары если честно, так как...

15
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
12.01.2013, 14:36 #2
Цитата Сообщение от mster-doc Посмотреть сообщение
C++
1
a=n/i;
И чему равно " i " ?
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 14:37 #3
Цитата Сообщение от mster-doc Посмотреть сообщение
C++
1
a=n/i;
а зачем вам эта строчка, да и еше ко всему у вас на этой строке не инициализирована i

Добавлено через 1 минуту
Цитата Сообщение от mster-doc Посмотреть сообщение
int *rec(int n)
{
* * if(n==0||n==1) return 1;
}
и какой смысл этой функции она у вас будет работать только в 2 случаях и результат один
0
Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 151
12.01.2013, 14:39 #4
вот тут ты необозначил чему равно i.
C++
1
2
3
4
5
6
int a,n,i;
    cout << "Input number:";
    cin >> n;
    
    
    a=n/i;
Объясню: a=n\i но i это НИЧТО, тк ты несказал компьютеру, что оно обозначает(например число 2)
0
mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
12.01.2013, 14:48  [ТС] #5
Всё, спасибо, писал что-то думал о другом
вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    cout << "Input number:";
    cin >> n;
    
    
   for (int i=2;i<n;i++)
   {
       if (n%i==0)
       {
                  cout << " 4islo ne prostoe, deliteli:" << i;
       }
   }
   cout <<" prostoe\n";
  
    system("pause");
    return 0;
}
Добавлено через 1 минуту
только всёровно немного работает криво
если ввести число 6 то программа выводит делители и думает что 2 не простое число
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 14:51 #6
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
using namespace std;
 
int main()
{
    int n;
    bool flag = true; 
    cout << "Input number:";
    cin >> n;
    
    
   for (int i=2;i<n;i++)
   {
       if (n%i==0)
       {
                  cout << " 4islo ne prostoe, deliteli:" << i;
                  flag = false;
       }
   }
   if (!flag)
   cout <<" prostoe\n";
  
    system("pause");
    return 0;
}
ну потому что вы водите просто так n добавте условие например такое
0
mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
12.01.2013, 14:57  [ТС] #7
всёровно также(
0
iifat
2318 / 1473 / 123
Регистрация: 05.06.2011
Сообщений: 4,075
12.01.2013, 15:19 #8
Цитата Сообщение от Nixy Посмотреть сообщение
C++
1
if (!flag)
C++
1
if (flag)
Ну, у тебя это в 19 строке.
0
mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
12.01.2013, 15:21  [ТС] #9
всёровно не помагло
0
FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
12.01.2013, 15:39 #10
Цитата Сообщение от mster-doc Посмотреть сообщение
если ввести число 6 то программа выводит делители и думает что 2 не простое число
И правильно, 6 делится на 3 и на 2
А на счёт двойки - цикл начинается с 2, поэтому срабатывает 2%2 == 0, для двойки отдельное условие задайте,
если n == 2 число простое и выход из программы
1
Pepsy
47 / 32 / 4
Регистрация: 05.01.2013
Сообщений: 307
12.01.2013, 15:43 #11
Цитата Сообщение от mster-doc Посмотреть сообщение
int a,n,i;
* * cout << "Input number:";
* * cin >> n;
a=n/i;
Задайте значение i
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 15:44 #12
лучше цикл с 1 начать просто

Добавлено через 17 секунд
а не отдельное условие 2
0
FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
12.01.2013, 15:50 #13
Цитата Сообщение от Nixy Посмотреть сообщение
лучше цикл с 1 начать просто
Добавлено через 17 секунд
а не отдельное условие 2
n % 1 всегда без остатка)))
тогда цикл с 1 и вот так:
C++
1
if (i>1 && n%i==0)
1
iifat
2318 / 1473 / 123
Регистрация: 05.06.2011
Сообщений: 4,075
12.01.2013, 15:54 #14
Цитата Сообщение от FreeMinder Посмотреть сообщение
цикл начинается с 2, поэтому срабатывает 2%2 == 0
Точно срабатывает? По идее, проверка до тела даже в первый раз -- цикл вообще не срабатывает.
1
FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
12.01.2013, 16:00 #15
iifat, вы правы, не подумал приняв на веру слова
Цитата Сообщение от mster-doc Посмотреть сообщение
и думает что 2 не простое число
0
12.01.2013, 16:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2013, 16:00
Привет! Вот еще темы с ответами:

Программирование метода градиентного спуска - проверка кода на корректность - C++
Здравствуйте! мне необходимо сдать лабораторную работу по методу градиентного спуска. я запрограммировал этот метод поиска минимума...

Портирование кода на С++ (проверка вводимых данных пользователем на корректность) - C++
Требуется портировать код с С# на С++. Код на шарпе - очень простой. В нем не используются языковые особенности шарпа, перевести, я думаю,...

Создать класс "Музей" - проверка кода на корректность - C++
Проверьте пожалуйста верно ли я написал class музей, в который должны входить: Наименовани,Назначение,Адрес,Часы работы,Стоимость билета?...

Нюансы обучения: желание учесть все нюансы - корректность кода или overengineering? - C++
Здравствуйте программисты! Ответьте пожалуйста на такой вопрос(объясните) Вот я учу С++ и решаю задачи по учебникам, и постоянно...


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

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

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