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

Разложение числа по цифрам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ "Проскакивает" getline(), если ранее вводилась целочисленная переменная. Почему? http://www.cyberforum.ru/cpp-beginners/thread261281.html
Итак... Имеется кусок кода, который должен принимать с клавиатуры порядковый номер работы (целое число), её название (строка) и описание (опять-таки, строка). Учитывая, что "название" и "описание" будут содержать в себе знаки препинания, решил использовать getline(). #include <iostream> #include <stdio.h> #include <string> using namespace std; int nrabota;
C++ Получение данных о пк какие функций существуют или как это сделать? например узнать какой процессор и какое на нем сейчас напряжение?) http://www.cyberforum.ru/cpp-beginners/thread261275.html
C++ Вычислить суммы положительных элементов в каждой строке двумерного массива
Вычислить суммы положительных элементов в каждой строке двумерного массива в С++ Builder 6.0
C++ Файлы. Динамические массивы.
Вывести на экран элементы входной последовательности положительных целых чисел, встречающихся в ней не более одного раза. Входная последовательность сохраняется в файле "lab1.dat"в виде: <элемент 1> <элемент 2> ... -1 Не разбираюсь в файлах!! Помогите реализовать!
C++ матрица http://www.cyberforum.ru/cpp-beginners/thread261265.html
В заданной целочисленной матрице найти количество ее столбцов, элементы которых упорядочены по убыванию. Помогите пожалуйста, я не могу написать это всё на СИ
C++ ошибка при работе с двунаправлеными списками //помогите исправить пожалуйста. отладчик пишет <Bad Ptr> при объявлении указателя на голову списка int main () { int q; printf ("q\n"); scanf ("%d", & q); list * head = Add (NULL); for (list *p = head; q>= 1;q--) fill_list (head); ... подробнее

Показать сообщение отдельно
Dexter
285 / 145 / 16
Регистрация: 13.10.2009
Сообщений: 164
21.03.2011, 18:10     Разложение числа по цифрам
Исходя из вашего кода:
C++
1
2
3
4
5
6
7
for (int i=0;i != rz_nsize(key);i++)
 {
 number[i]=key/core;
 key=key-number[i]*core;
 core/=10;
 cout<<number[i]<<endl;
 }
Здесь будет ошибка, почему:
Пусть key вначале будет 1234, то после прохождения цикла он станет key=key-number[i]*core; тоесть 234, а параметр i увеличится до единицы, потом он станет 1. На следующем шаге key станет 34, а i=2 после чего выйдет с цикла. Почему у вас работает с нечетным количеством цифер неизвестно, так как должен вылетать за пределы массива и ругаться потом, как i станет отрицательным, так как i == rz_nsize(key) не произойдет никогда, а i будет все время увеличиваться.
Поменяйте на
C++
1
for (int i=0;0 != rz_nsize(key);i++)

P.S. Да и вот такое у меня компилятор не кушает
C++
1
int number[rz_nsize(key)];
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru