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

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

Восстановить пароль Регистрация
 
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
12.01.2013, 14:30     Не корректность кода (определение простых чисел) #1
Здравствуйте. Помогите исправить ошибки.
В программе определяющей простые числа
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2013, 14:30     Не корректность кода (определение простых чисел)
Посмотрите здесь:

Программирование метода градиентного спуска - проверка кода на корректность C++
C++ Корректность моего кода
Портирование кода на С++ (проверка вводимых данных пользователем на корректность) C++
C++ Дан массив целых чисел. Верно ли, что он состоит только из простых чисел?
C++ как вычислить количество простых чисел среди положительных чисел массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
12.01.2013, 14:36     Не корректность кода (определение простых чисел) #2
Цитата Сообщение от mster-doc Посмотреть сообщение
C++
1
a=n/i;
И чему равно " i " ?
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 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 случаях и результат один
Xipxop
 Аватар для Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 150
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)
mster-doc
 Аватар для 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 не простое число
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 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 добавте условие например такое
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
12.01.2013, 14:57  [ТС]     Не корректность кода (определение простых чисел) #7
всёровно также(
iifat
2179 / 1332 / 96
Регистрация: 05.06.2011
Сообщений: 3,689
12.01.2013, 15:19     Не корректность кода (определение простых чисел) #8
Цитата Сообщение от Nixy Посмотреть сообщение
C++
1
if (!flag)
C++
1
if (flag)
Ну, у тебя это в 19 строке.
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
12.01.2013, 15:21  [ТС]     Не корректность кода (определение простых чисел) #9
всёровно не помагло
FreeMinder
 Аватар для 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 число простое и выход из программы
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
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 15:44     Не корректность кода (определение простых чисел) #12
лучше цикл с 1 начать просто

Добавлено через 17 секунд
а не отдельное условие 2
FreeMinder
 Аватар для 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)
iifat
2179 / 1332 / 96
Регистрация: 05.06.2011
Сообщений: 3,689
12.01.2013, 15:54     Не корректность кода (определение простых чисел) #14
Цитата Сообщение от FreeMinder Посмотреть сообщение
цикл начинается с 2, поэтому срабатывает 2%2 == 0
Точно срабатывает? По идее, проверка до тела даже в первый раз -- цикл вообще не срабатывает.
FreeMinder
 Аватар для FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
12.01.2013, 16:00     Не корректность кода (определение простых чисел) #15
iifat, вы правы, не подумал приняв на веру слова
Цитата Сообщение от mster-doc Посмотреть сообщение
и думает что 2 не простое число
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2013, 16:08     Не корректность кода (определение простых чисел)
Еще ссылки по теме:

Создать класс "Музей" - проверка кода на корректность C++
C++ Метод хорд - проверить корректность реализации кода
Не понятен смысл кода вывода простых чисел C++

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

Или воспользуйтесь поиском по форуму:
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 16:08     Не корректность кода (определение простых чисел) #16
Цитата Сообщение от FreeMinder Посмотреть сообщение
n % 1 всегда без остатка)))
меня переклинуло что остаток само делимое )
Yandex
Объявления
12.01.2013, 16:08     Не корректность кода (определение простых чисел)
Ответ Создать тему
Опции темы

Текущее время: 06:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru