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

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

Войти
Регистрация
Восстановить пароль
 
sp.caster
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 25
#1

Хватит ли денег - C++

04.05.2011, 14:14. Просмотров 838. Ответов 7
Метки нет (Все метки)

Музыкальный диск
Входной файл:test.in
Выходной файл:test.out
Ограничение по времени: 0.5 с
Музыкальный диск стоит x руб. n коп. У вас имеется a руб. b коп. Хватит ли вам денег на покупку диска? В случае недостатка, определите, сколько денег нужно добавить.
Входной файл
В первой строке даны целые числа x и n, разделенные пробелом (0 ≤ x ≤ 1000, 0 ≤ n ≤ 99, x и n одновременно не могут быть равны нулю).
Во второй строке даные целые числа a и b, разделенные пробелом (0 ≤ a ≤ 1 000 000, 0 ≤ b ≤ 99).
Выходной файл
В первой строке выведите “yes”, если имеющаяся сумма достаточна для приобретения диска. Если денег не хватит, выведите в первой строке “no”, а во второй строке – целые числа p и q, разделенные пробелом, недостаток соответственно в рублях и копейках (0 ≤ q ≤ 99). Число копеек выведите двумя цифрами, при необходимости добавив ведущий ноль.
Примеры входного и выходного файлов

test.in
3 20
5 00

test.out
yes

test.in
10 20
7 80

test.out
no
2 40

Моя программа:

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
#include <iostream>
#include <stdio.h>
using  namespace std;
int main()
{
    double x, a, b, n, y, c;
    int q, t;
    freopen("test.in", "r", stdin);
    freopen("test.out", "w", stdout);
    scanf("%f %f %f %f", &x, &n, &a, &b);
    y=x+n*0.01;
    c=a+b*0.01;
    
    if (y>c) then
    {
        q=x-a;
    t=n-b;
    printf("no \n %f %f", &q, &t);
    if (t<0)
    {
        t = t + 100; 
    printf("no \n %f %f", &q, &t);
    }
    }
    else
        cout<<"yes";
}
q-разность рублей
t-разность копеек

Проблема: не работает. Пишет просто:
no
0.000000 0.000000


Подскажите в чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2011, 14:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Хватит ли денег (C++):

Хватит ли денег на диск? - C++
Музыкальный диск стоит x долларов n центов. У вас имеется а долларов и b центов. Хватит ли денег на покупку диска? В программе...

Ветвление: Хватит ли вам денег на покупку диска? - C++
Добрий день товарищи!!! Помогите сделать задачу. Музыкальный компакт-диск стоит х-руб. n-коп. У вас есть а-руб. b-коп. Хватит вам...

Хватит ли имеющейся суммы денег на закупку необходимого количества топлива - C++
Привет форумчане, уже который раз я прошу помощи у вас. Задали задачу которую нужно решить на C++ 2008 Express.

Требуется определить, хватит ли имеющейся суммы денег на покупку линолеума - C++
Задача нужна с комментами Для прямоугольной комнаты размером W x H метров нужно закупить линолеум. В магазине линолеум продают рулонами;...

Хватит ли краски строителю для покраски сцены - C++
Строителю предстоит покрасить сцену круглой формы, диаметр которой можно измерить рулеткой. Спросите сколько у него в наличии краски и...

Стоит ли учить C++/ CLI или хватит стандартного С++ ? - C++
Интересует мнение про в этой сфере. Хотелось бы устроиться С++ Junior Developre, стоит ли сейчас заняться изучением C++/ CLI , или вполне...

7
valeriikozlov
Эксперт С++
4671 / 2497 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.05.2011, 14:24 #2
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
#include <iostream>
#include <stdio.h>
using  namespace std;
int main()
{
        double x, a, b, n, y, c;
        int q, t;
        freopen("test.in", "r", stdin);
        freopen("test.out", "w", stdout);
        scanf("%lf %lf %lf %lf", &x, &n, &a, &b);
        y=x+n*0.01;
        c=a+b*0.01;
        
        if (y>c) 
        {
                q=(int)(x-a);
        t=(int)(n-b);
        //printf("no \n %lf %lf", &q, &t);
        if (t<0)
        {
                t = t + 100; 
                q--;
        }
        printf("no\n%d %d", q, t);       
        }
        else
                cout<<"yes";
        return 0;
}
0
sp.caster
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 25
04.05.2011, 18:25  [ТС] #3
Спасибо за попытку, но ничего не изменилось

Добавлено через 5 минут
После запуска вылезают какие-то ошибки, а в окошке снизу:
Run-Time Check Failure #3 - The variable 'n' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'b' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'a' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'a' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'n' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'b' is being used without being initialized.

Я так понимаю ему чем-то не нравятся вводимые переменные, которых всего 4, а не нравятся 3
0
valeriikozlov
Эксперт С++
4671 / 2497 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.05.2011, 18:40 #4
sp.caster, Что записано в файле test.in ?
0
sp.caster
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 25
04.05.2011, 18:49  [ТС] #5
1 00
0 99
0
valeriikozlov
Эксперт С++
4671 / 2497 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.05.2011, 20:10 #6
sp.caster, Вот так попробуйте:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main()
{
  
    int x, n, a, b;
        freopen("test.in", "r", stdin);
        freopen("test.out", "w", stdout);
        scanf("%d %d %d %d", &x, &n, &a, &b);
        if(x*100+n>a*100+b)
            printf("no\n%d %02d", (x*100+n-a*100-b)/100, (x*100+n-a*100-b)%100);       
        else
            printf("yes");                
        return 0;
}
1
sp.caster
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 25
04.05.2011, 21:08  [ТС] #7
ничего не изменилось

Добавлено через 12 минут
Создал все заново, использовал ваш код - все работает. Спасибо. А почему тогда не работал старый проект? Из-за того, что используя новый код я не нажал build?
0
valeriikozlov
Эксперт С++
4671 / 2497 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.05.2011, 21:16 #8
sp.caster, да
1
04.05.2011, 21:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 21:16
Привет! Вот еще темы с ответами:

Хватит ли барану веревки, чтобы дотянуться до травы - C++
Баран находится на острове диаметр которого 23 м. Баран привязан на берегу. У барана на шее верёвка, длина которой 12м. Означает ли это,...

Определить хватит ли линолеума чтобы застелить пол комнаты - C++
Пользователь купил линолеум, чтобы постелить его в своей комнате. Спросите ширину и длину рулона линолеума, а так же ширину и длину...

Подсчет денег на изображении - C++
нужна программа для подсчета денег с изображения. Среда программирования значения не имеет, главное чтоб код был рабочий, хотя желательно...

Выдать наименьшее количество денег - C++
Пусть имеются 10,20,50,100,200,500 гривень.Необходимо определить наименьшое количество купюр, которые необходимо использовать чтобы выдать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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