Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
powidlo
0 / 0 / 1
Регистрация: 30.01.2015
Сообщений: 1
#1

Ошибка в коде: напишите функцию поиска совершенных чисел во введенном интервале - C++

30.01.2015, 01:18. Просмотров 689. Ответов 2
Метки нет (Все метки)

Не выходит найти ошибку, задание:
Число называется совершенным, если сумма всех его делителей равна ему самому.
Напишите функцию поиска таких чисел во введенном интервале.
Помогите, пожалуйста

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
#include <iostream>
using namespace std;
int PerfectDigit(int a, int b)
{        
        for(int i=a; i<b; i++)
        {
                int result=0;
                for( int j=1; j<i; j++)
                {
                        if ((i%j)==0)
                        {
                                result+=j;
                        }
                }
                        if(result==i)
                        {
                                return result;
                        }      
        }      
}
 
void main ()
{
        int res=PerfectDigit(0,100);
        cout<<res<<"\t";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2015, 01:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка в коде: напишите функцию поиска совершенных чисел во введенном интервале (C++):

Функция поиска совершенных чисел во введенном интервале - C++
Число называется совершенным, если сумма всех его делителей равна ему самому....

Вывести количество совершенных чисел в интервале [a, b]
Число назывется совершенным, если оно равно сумме своих собственных делителей....

Напишите функцию поиска количества максимальных элементов в массиве
напишите функцию поиска количества максимальных элементов в массиве (в С++)

Напишите функцию для поиска максимальных элементов списка
Напишите функцию для поиска максимальных элементов списка. Код задания списка в...

Написать программу поиска чисел, лежащих в интервале от -5 до 5
на си: Написать программу поиска чисел, лежащих в интервале от -5 до 5, в...

Напишите функцию для поиска первого уникального символа в строке
Пожалуйста! Напишите функцию для поиска первого уникального символа в строке(с...

2
Murad93
11 / 11 / 3
Регистрация: 20.09.2012
Сообщений: 74
30.01.2015, 01:49 #2
Ваша функция возвращает первое совершенное число, которое она нашла в интервале и сразу завершается (т.е. не ищет ни второе, ни третье)

Как таковой ошибки нет. НО: если совершенного числа нет, то функция должна все равно вернуть int, поэтому надо добавить return 0; в самый конец функции;

Добавлено через 5 минут
Чтобы функция не выбрасывалась на нуле:
C++
1
2
3
4
if(result==i && result)
{
return result;
}
1
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
30.01.2015, 01:55 #3
powidlo, сделайте возвращаемое значение не int, а void, а в функции выводите числа cout'ом.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2015, 01:55
Привет! Вот еще темы с решениями:

Напишите программу вычисления суммы квадратов простых чисел, лежащих в интервале (M,N)
с использованием функций

Функция поиска (ошибка в коде)
void poisk_po_imeni() { if(!sch) { cout&lt;&lt;&quot;Сначала что-нибудь...

Используя функцию поиска max из 2-х чисел, найти наибольшее из n чисел
Используя функцию поиска max из 2-х чисел, найти наибольшее из n чисел без POW

Вычислить сумму чисел в интервале, заданном вводимыми числами; использовать рекурсивную функцию
#include &lt;iostream&gt; using namespace std; int sum(int y, int x); int...


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

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

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