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

Работа с цифрами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Генератор разбиений числа http://www.cyberforum.ru/cpp-beginners/thread372700.html
У нас есть шаблон структуры всех разбиений числа: //-- Gen.h #pragma once namespace combi { struct partition // генератор разбиений целого числа { short n, // исходное число sn, // количество элементов в текущем разбиении q; // индекс текущего элемента для разбиения
C++ разработать программу для МПУ.На С разработать программу для МПУ, для контроля и индикации параметров изменяющегося по случайному закону 8_разрядного двоичного кода. Результаты контроля должны выводиться на индикатор. Скорость изменения кода, пределы его изменения, время контроля и контроль параметров приведены: Параметры кода: _Скорость изменения кода ед/с 10000 _Пределы изменения числового значения кода 00000000-11111111... http://www.cyberforum.ru/cpp-beginners/thread372699.html
препроцессор, #if C++
Создаю файл: #define PARAM ABC #if PARAM == ABC #warning warning passed #endif #if PARAM == XXX #error error reached #endif
Найти сумму числовых значений цифр, содержащихся в строке (используя switch) C++
Мне требуется: Написать программу, которая считывает строку символов, состоящую только из латинских букв, цифр и пробелов (с проверкой символов при вводе), и находит сумму числовых значений цифр, содержащихся в строке. Как это сделать используя оператор свич. Желательно с живым примером.
C++ Map и указатель на ф-цию http://www.cyberforum.ru/cpp-beginners/thread372679.html
Вечер добрый, перешел на вижуал студио с МС компилером, после мингы, не могу понять почему данный код на мингве успешно выполняется, а на МС компилере нет: bool comp (const std::string &left_str, const std::string &right_str) { return (left_str > right_str) ? true : false; }
C++ В одномерном массиве вычислить минимальный элемент В одномерном массиве, состоящем из п вещественных элементов, вычислить: - минимальный элемент массива; - сумму элементов массива, расположенных между первым и последним положительными элементами. void main() { setlocale(LC_ALL,"Russian"); int arr; int n,count=0,summ=0; bool x; scanf("%d",&n); подробнее

Показать сообщение отдельно
blecklov
11 / 11 / 2
Регистрация: 07.08.2009
Сообщений: 85

Работа с цифрами - C++

26.10.2011, 01:16. Просмотров 581. Ответов 1
Метки (Все метки)

Не могу понять, что в программе не так. Алгоритм правильный, но расчет не идет.

Исходное задание:
Напишите программу, принимающую с консоли большое целое число и выводящую его на консоль с разделителями-запятыми после каждых трех цифр. Например, 123654004 -> 123,654,004. Программа должна принимать большое целое с консоли следующим образом:

long lNum;
std::cin >> lNum;

и выводить его на консоль с помощью массива символов:

char Str[?]; // какова должна быть размерность массива?
std::cout << Str << "\n";

Программа не должна использовать библиотечные функции для работы со строками.

----------------------------------------------------------------------------------------------

Примечания

1. Рассмотрите возможность применения циклов for, while и do while. Какой вариант лучше?

2. Для инкрементирования переменных используйте оператор ++. Его можно использовать двояко - как постфиксный (i++) и как префиксный (++i). Выражение y = x++ интерпретируется компилятором так: присвоить переменной y значение x и увеличить x на единицу. Выражение y = ++x выполняется в другом порядке: увеличить x на единицу и присвоить переменной y новое значение x. Если короче, то i++ означает "воспользоваться i, а потом увеличить", а ++i – "сначала увеличить i, а потом уже воспользоваться".

3. Используйте оператор % - остаток от целочисленного деления.

4. Для корректной работы операции std::cout << Str << '\n' массив символов Str должен заканчиваться нулевым символом '\0'.

мой код

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
27
28
29
30
31
32
#include <iostream>
 
void main(){
long lNum;
std:: cin >> lNum;
int a,b,d,i,h,n;
char X[13];
d=1;
a=1;
b=1;
for (i=1;i<10;i++){
d=10*d;
a=lNum/d;
if (a==0)
 n=i;
}
d=1;
for ( i=0; i<n; i++)
{
    d=d*10;
    a=lNum/d;
    b=a%d;
    h=48+b;
    if (a/3!=0)
            X[13-i]=h;
    else 
    X[13-(i+1)]=',';
}
for (i=0; i<14; i++){
std:: cout <<X[i];  
}
}
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru