Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Мой лучший друг-отладчик!
165 / 165 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
1

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

20.07.2012, 13:33. Просмотров 336. Ответов 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.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2012, 13:33
Ответы с готовыми решениями:

Ошибка в коде(нахождение манимального элемента в массиве)
Мне нужно найти минимальный элемент массива Вот мой код Ниже ошибку которую выдаёт Delphi Что не...

Нахождение делителей
Найти простые делители числа А.

Нахождение целых делителей числа
Доброго времени суток! Такой вопрос: нужно в Windows Forms сделать небольшую программку для...

Нахождение количества делителей числа
Даны 2 числа (А и В). У какого из этих чисел больше делителей?

1
511 / 463 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 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;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2012, 13:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Userform: нахождение количества делителей числа
Найти кол-во делителей числа в Форме ? форма должна содержать MsgBox и TextBox1 .

Нахождение числа с максимальной суммой делителей
Помогите найти ошибки в задаче: Найти натуральное число от 1 до 10000 с максимальной суммой...

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


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

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

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