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

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

Войти
Регистрация
Восстановить пароль
 
ZaMaZaN4iK
Мой лучший друг-отладчик!
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
#1

Ошибка в коде(нахождение делителей) - C++

20.07.2012, 13:33. Просмотров 266. Ответов 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
// zadachka.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    system("chcp 1251");
    int a,c;
    float b,v,n;
    cout<<"Введите натуральное число ";
    cin>>a;
    for(c=a/2;c>0;c--)
    {
        b=a/c;
        v=modf(b,&n);
        if(v==0)
        cout<<c<<endl;
    }
    system("pause");
}
Так вот, прога должна выводить делители.при введенном числе 12 должна выводить 6,4,3,2,1. Но она у меня выводит 6,5,4,3,2,1. Посмотрел отладчиком, а у меня почему то когда делится 12 на 5, в переменную b загоняется 2,0000000. Почему так работает??? Ведь должно же загонятся 2.4. Help me? please.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2012, 13:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в коде(нахождение делителей) (C++):

нахождение делителей числа - C++
Даны натуральные числа n, m. Получить наименьшее общее кратное (НОК) чисел n, m. НОК(n, m) = n*m / НОД(n, m).

Нахождение суммы общих делителей чисел - C++
помогите плз: Даны натуральные числа n, m. Получить сумму их общих делителей.

Быстрое нахождение количества делителей натурального числа - C++
Как многие успели убедиться, часто требуется найти количество делителей натурального числа. Предлагаю быстрые алгоритмы для этой задачи. ...

Нахождение количества делителей числа через рекурсию - C++
Здравствуйте, я решал задачу на нахождение кол-ва делителей числа через рекурсию, вот код: void Rec(int x, int y, int Am) { if...

Нахождение числа с максимальным количеством делителей из интервала между a и b - C++
Задача : Найдите натуральное число из интервала с a по b, у которого количество делителей максимально. Если таких чисел несколько, то...

нахождение ошибок в коде, наследование - C++
#include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &lt;iostream&gt; using namespace std; class Complex { protected: float Re,Im;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
20.07.2012, 13:40 #2
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
когда делится 12 на 5, в переменную b загоняется 2,0000000.
А как иначе?

a - типа int, b - типа int, при их делении получается целое число, т.е. 2. А потом при присваивании b оно преобразуется во float.

Добавлено через 1 минуту
На самом деле зачем тут мудрить, когда можно проще:
C++
1
2
if(a % c == 0)
     cout << c << endl;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 13:40
Привет! Вот еще темы с ответами:

Нахождение max в файле чисел. Ошибки в коде - C++
Здравствуйте! Мне нужно найти максимальный элемент в файле целых чисел. Вот мой код. Но он приравнивает все элементы к 0. Не пойму в чём...

Нахождение суммы элементов массива, найти ошибку в коде - C++
#include &lt;iostream&gt; #include &lt;time.h&gt; using namespace std; void fm(int a, int count){ for (int i=0; i&lt;count; i++) ...

Где тут в коде происходит нахождение корня? (метод половинного деления) - C++
не пойму где в коде происходит вычисление корня по методу половинного деления #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include...

Ошибка в коде (Ошибка сегментирования (core dumped) - C++
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; while ((ch = cin.get()) != '0' ) ...


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

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

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