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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
25.06.2012, 08:28     например 317 должно вывести 3 гривны 17 копеек, 1 гривна 00 копеек #1
Помогите подумать над алгоритмом, вот сама задача:
Дано натуральное число, равное выраженной в копейках цене некоторого товара, например 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++
C++ Известны данные о стоимости каждого из 20 наименований товаров: число рублей и число копеек
C клавиатуры вводятся два вещественных числа. Вывести результат их произведения в виде равенства. Например, для введенных чисел 5 и 7 вывести 5*7=35 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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,888
Записей в блоге: 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,888
Записей в блоге: 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 копеек
Ответ Создать тему
Опции темы

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