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

Постоянная ошибка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запихнуть в vector<int>, char? http://www.cyberforum.ru/cpp-beginners/thread963982.html
Всем доброго времени суток! Вот решил написать программу, которая переводила бы число из десятичной системы счисления в шеснадцатиричную систему. Столкнулся с проблемой. Т.к. в шеснадцатиричной системе помимо цифр есть ещё и буквы, возник вопрос, как в векторный массив типа int можно поместить переменную типа char? Или можно использовать не vector, а что-то другое, но суть в том, что память...
C++ Как вывести функцию? Занимаюсь по ученику Прата С. не могу выполнить упражнение: Напишите программу, которая выдает запрос на ввод значений часов и минут. Функция main () должна передать эти два значения функции, имеющей тип void, которая отобразит эти два значения в следующем виде: Enter the number of hours: 9 Enter the number of minutes: 28 Time: 9:28 До меня никак не дойдет как это можно сделать, буду... http://www.cyberforum.ru/cpp-beginners/thread963971.html
из четырех строк образует две строки по правилу c++ C++
писать процедуру, которая из четырех строк образует две строки по правилу: (x,y,a,b) x=(a1,a2,...,a8,x9,x10,...,x20); y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).
Русский язык при переносе проекта Sublime Text C++
Добрый день. Недавно открыл для себя Sublime Text. Обнаружил, что при открытии русского файла выдаются кракозябры - полазил по хабру, поменял в одной строчке Western на Кириллицу(слово вестерн на слово кириллица). Это так, вдруг важно. Теперь есть проблема - всё, что было сохранено в среде - в моём случае в wxDev-C++ прекрасно открывается в Sublime Text, но в обратном порядке - кракозябры....
C++ Блок-схема алгоритма http://www.cyberforum.ru/cpp-beginners/thread963951.html
#include <iostream> #include <math.h> #include <conio.h> using namespace std; int main() { int a,x,c,f; cin >>a; cin >>x; cin >>c;
C++ Найдите количество чисел Z, удовлетворяющих неравенству A ≤ Z ≤ B, таких, что в записи двоичного разложения Z используется ровно K единиц Цель работы Изучение синтаксиса описания классов и процесса порождения объектов. Задание Найдите количество чисел Z, удовлетворяющих неравенству A ≤ Z ≤ B, таких, что в записи двоичного разложения Z используется ровно K единиц. (0 ≤ A ≤ B ≤ 109, 0 ≤ K ≤ 30) Например, если A=10; B=20; K=2, то таких чисел 5 (это числа 10=10102; 12=11002; 17=100012; 18=100102; 20=101002). Помните, что... подробнее

Показать сообщение отдельно
Xerocry
0 / 0 / 0
Регистрация: 28.09.2013
Сообщений: 21

Постоянная ошибка - C++

28.09.2013, 01:24. Просмотров 404. Ответов 8
Метки (Все метки)

Здравствуйте. Пишу программу по расчёту мин. кол-ва банкнот и монет для набора суммы. При целых суммах всё нормально, но при вводе суммы с дробной части у 10-долларовой банкноты(почему-то только у неё, все остальные считаются правильно) происходят дикие вещи и переполнение. Не могу найти ошибку...помогите пожалуйста.

Код: http://pastebin.com/sKgXSZDy

P.S. Заранее спасибо =)

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <conio.h>
#include <locale>
#include <windows.h>
//функция расчёта для количества купюр и монет при стандарт параметрах
void calculate(float summa, float bank[], float monet[],int kol_monet[],int kol_bank[])
{
        int i=0,p=0;
        while (summa!=0.0)
        {
                if (summa>=10.00)
                {
                        if (summa>=bank[i])
                        {
                        summa=summa-bank[i];
                        kol_bank[i]++;
                        }
                        else {i++;}
                }
                else
                {
                        if (summa>=monet[p])
                        {
                        summa=summa-monet[p];
                        kol_monet[p]++;
                        }
                        else p++;
                }
        }
}  
//функция вывода при стандарт параметрах
void vivod(int kol_bank[],float bank[],float monet[],int kol_monet[])
{
                for(int k=0;k<=5;k++)
        {
                if(kol_bank[k]!=0)
                printf("%-.0f$: %i\n", bank[k], kol_bank[k]);
        }
        for(int k=0;k<=5;k++)
        {
                if(kol_monet[k]!=0)
                printf("%-3.2f: %i\n", monet[k], kol_monet[k]);
        }
}
 
 
void main()
{
        //setlocale(LC_ALL, "Russian");
        float bank[]={5000,1000,500,100,50,10},monet[]={5,2,1,0.50,0.10,0.05},summa;
        int kol_bank[]={0,0,0,0,0,0},kol_monet[]={0,0,0,0,0,0};
        printf("Введите сумму: ");
        scanf("%f", &summa);
        calculate(summa, bank, monet,kol_monet,kol_bank);
        vivod(kol_bank,bank,monet,kol_monet);
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru