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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,893
Записей в блоге: 1
#1

например 317 должно вывести 3 гривны 17 копеек, 1 гривна 00 копеек - C++

25.06.2012, 08:28. Просмотров 1275. Ответов 4
Метки нет (Все метки)

Помогите подумать над алгоритмом, вот сама задача:
Дано натуральное число, равное выраженной в копейках цене некоторого товара, например 317, 100 и т.д. Выразить цену в гривнах и копейках, например 3 гривны 17 копеек, 1 гривна 00 копеек. Число копеек всегда записывается двумя цифрами.

Я так понимаю что числа надо разбить на лексемы только не знаю как это можно сделать ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 08:28     например 317 должно вывести 3 гривны 17 копеек, 1 гривна 00 копеек
Посмотрите здесь:

C++ Перевод копеек в рубли
C++ составить алгоритм подсчета количества способов, которыми можно разменять рубль медными монетами(достоинством в1,2,3,5 копеек)
C++ Строка: Вывести строку-описание данного числа, например: 256 — «двести пятьдесят шесть»
Диапазон чисел - вывести по порядку, указывая сколько строк должно быть C++
Вводятся два числа. Вычислить их разницу и вывести результат в виде, например 20-10 = 10 C++
C++ Известны данные о стоимости каждого из 20 наименований товаров: число рублей и число копеек
C клавиатуры вводятся два вещественных числа. Вывести результат их произведения в виде равенства. Например, для введенных чисел 5 и 7 вывести 5*7=35 C++
C++ Напишите программу, которая переводит гривны в $
C++ Дано целое число в диапазоне 100–999. Вывести строку-описание данного числа, например: 256 — «двести пятьдесят
Ввести целое число (например 123456), а вывести в обратном порядке C++
Надо организовать проверку на введенную строку, если есть цифры то должно вывести ошибку C++
C++ Ввести с клавиатуры цифру, а вывести на экран должно символ ASCII

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
25.06.2012, 08:50     например 317 должно вывести 3 гривны 17 копеек, 1 гривна 00 копеек #2
Ну так... с помощью деления и взятия остатков. Единственная заморочка, что нолики для копеек придётся выводить.

Вот мои извращенские варианты:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iomanip>
 
int main()
{
    int x;
 
    std::cin >> x;
    
    std::cout << x / 100 << "gr " << (x % 100) / 10 << x % 10 << "kop\n";
    
    std::cout << x / 100 << "gr " << std::setw(2) << std::setfill('0') << x % 100 <<  "kop\n";
 
    return 0;
}
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,893
Записей в блоге: 1
25.06.2012, 08:55  [ТС]     например 317 должно вывести 3 гривны 17 копеек, 1 гривна 00 копеек #3
Цитата Сообщение от Schizorb Посмотреть сообщение
Ну так... с помощью деления и взятия остатков. Единственная заморочка, что нолики для копеек придётся выводить.

Вот мои извращенские варианты:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iomanip>
 
int main()
{
    int x;
 
    std::cin >> x;
    
    std::cout << x / 100 << "gr " << (x % 100) / 10 << x % 10 << "kop\n";
    
    std::cout << x / 100 << "gr " << std::setw(2) << std::setfill('0') << x % 100 <<  "kop\n";
 
    return 0;
}
не могу понят что эти две строки делают ?

C++
1
2
3
 std::cout << x / 100 << "gr " << (x % 100) / 10 << x % 10 << "kop\n";
    
    std::cout << x / 100 << "gr " << std::setw(2) << std::setfill('0') << x % 100 <<  "kop\n";
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
25.06.2012, 09:17     например 317 должно вывести 3 гривны 17 копеек, 1 гривна 00 копеек #4
В смысле... там же всё просто. В первой выводятся последовательно цифры числа. С операциями деления и взятия остатка знаком?

Во второй сначала гривны (x/100), потом копейки (x%100), ну и добавил манипуляторы, чтобы нули выводились для копеек в случае чего.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,893
Записей в блоге: 1
25.06.2012, 09:24  [ТС]     например 317 должно вывести 3 гривны 17 копеек, 1 гривна 00 копеек #5
Цитата Сообщение от Schizorb Посмотреть сообщение
В смысле... там же всё просто. В первой выводятся последовательно цифры числа. С операциями деления и взятия остатка знаком?

Во второй сначала гривны (x/100), потом копейки (x%100), ну и добавил манипуляторы, чтобы нули выводились для копеек в случае чего.
я думал там что то сильно сложное типо надо было массивом создавать
Yandex
Объявления
25.06.2012, 09:24     например 317 должно вывести 3 гривны 17 копеек, 1 гривна 00 копеек
Ответ Создать тему
Опции темы

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