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

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

Восстановить пароль Регистрация
 
sp.caster
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 25
04.05.2011, 14:14     Хватит ли денег #1
Музыкальный диск
Входной файл: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


Подскажите в чем проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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;
}
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
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.05.2011, 18:40     Хватит ли денег #4
sp.caster, Что записано в файле test.in ?
sp.caster
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 25
04.05.2011, 18:49  [ТС]     Хватит ли денег #5
1 00
0 99
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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;
}
sp.caster
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 25
04.05.2011, 21:08  [ТС]     Хватит ли денег #7
ничего не изменилось

Добавлено через 12 минут
Создал все заново, использовал ваш код - все работает. Спасибо. А почему тогда не работал старый проект? Из-за того, что используя новый код я не нажал build?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 21:16     Хватит ли денег
Еще ссылки по теме:

Хватит ли имеющейся суммы денег на закупку необходимого количества топлива C++
Выдать наименьшее количество денег C++
Отправить несколько бандеролей за минимальную сумму денег C++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.05.2011, 21:16     Хватит ли денег #8
sp.caster, да
Yandex
Объявления
04.05.2011, 21:16     Хватит ли денег
Ответ Создать тему
Опции темы

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