Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2012, 23:16   #1
laminar
 
Регистрация: 11.11.2012
Сообщений: 7
Злость Где ошибка???

Есть такой код, который разбивает введенное число на разряды, но делает он это не совсем правильно, ошибка в последнем разряде (единицы), помогите ее найти.

Собственно:
Код:
#include <iostream>
#include <cmath>

int Digits(long);

int main()
{
    long n;
    int digitQty;

    std::cout<<"Input digit\n";
    std::cin>>n;

    do {
        digitQty=Digits(n);
        int *dataByDigit = new int[digitQty];

        for (int i=digitQty; i>0; i--) {
            dataByDigit[i-1] = n / pow(10,i-1);
            n -= dataByDigit[i-1] * pow(10,i-1);
        }
        n=0;

        for (int i=0; i<digitQty; i++){
            std::cout<<i<<"\t"<<dataByDigit[i]<<std::endl;
        }
        delete [] dataByDigit;

    } while (digitQty<1);

     return 0;
}

int Digits(long d)
{
    int counter(1);
    int i(10);
    while (d/i>=1) {
        counter++;
        i*=10;
        }
    return counter;
}
laminar вне форума Ответить с цитированием
Старый 11.11.2012, 23:57   #2
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

А что за объявления такие?
Код:
    int counter(1);
    int i(10);
Просветите, если не трудно
Axrik вне форума Ответить с цитированием
Старый 12.11.2012, 04:56   #3
laminar
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Axrik Посмотреть сообщение
А что за объявления такие?
Код:
    int counter(1);
    int i(10);
Просветите, если не трудно
Ничего необычного, то же самое, что и
Код:
    int counter=1;
    int i=10;
laminar вне форума Ответить с цитированием
Старый 12.11.2012, 21:47   #4
laminar
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию

Вот совсем не ожидал бага с такой стороны

сборка в QT Creator:




а вот то же самое в NetBeans:



Причем в NetBeans использовал 3 разных компилятора при сборке, на всех - правильно
laminar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
где ошибка? Degster Паскаль, Turbo Pascal, PascalABC.NET 1 26.06.2011 11:33
написал программу, где то ошибка, не пойму где... Kelevra91 Общие вопросы C/C++ 5 17.01.2011 16:38
Где ошибка? stas77 Microsoft Office Excel 11 02.11.2009 18:26
где ошибка ? mouse697 Помощь студентам 2 22.03.2009 15:01