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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Си, структура http://www.cyberforum.ru/cpp-beginners/thread86315.html
Привет всем =) Помогите пожалуйста решить задачку на структуру... Определить структуры, описывающие шар и точку в трехмерном пространстве. Составить и протестировать функцию, которая проверяет, находиться ли точка внутри заданного шара У меня на днях экзамен.. очень расчитываю на вашу помощь, всем заранее спасибо!
C++ Нужно програму на С надо сделать д/з типа по обмену трёх валют USD,uah,eur! Помогите пж с програмой на С надо сделать д/з типа по обмену трёх валют USD,uah,eur Пожалуйста пождалуйста!! http://www.cyberforum.ru/cpp-beginners/thread86300.html
C++ массив структур
как записать массив структур в файл и как его от туда вытащить?? что прописывать???
C++ Указатель this - как и когда его использовать
Объясните, зачем нужен указатель this, как его применять в классах, если можно небольшой пример.
C++ Работа с текстовым файлом! http://www.cyberforum.ru/cpp-beginners/thread86247.html
В текстовом файле, имя которого задаёт пользователь, найдите абзац начинающийся на заданное слово (Абзац начинается с красной строки, т.е. 5 пробелов подряд). Вывести номера строк начала и конца этого абзаца. Помогите пожалуйста. Завтра экзамен, одна из задач такая. Идей нет что-то...
C++ Организация проекта на C++ Как правильно организовать большой проект? Незная этого я создал так: stdafx.h включает в себя все заголовки один из включаемых файлов - globals.h содержит все extern'ы каждый .cpp включает в себя stdafx.h .cpp - 13 файлов .h - 19 файлов Это удобно, но... допустимо или криво? В последнее время проект стал долго компилится (почти минута). Очень трудно когда ждешь минуту а там какая нибудь... подробнее

Показать сообщение отдельно
Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
18.01.2010, 19:10     Сложить две денежные суммы в рублях и копейках, заданные прописью.
Пока без копеек, но идея, надеюсь, понятна
Код
#include <stdio.h>
#include <string.h>
#include <math.h>
static char *prop[]={"ст","двест","трист","четырест",
 "пятьсот","шестьсот", "семьсот","восемьсот","девятьсот",
 "двадцать","тридцать","сорок","пятьдесят","шестьдесят",
                "семьдесят","восемьдесят","девяност",
 "десять","одиннадц","двенадц","тринадц",
 "четырнадц","пятнадц","шестнадц","семнадц","восемнадц","девятнадц",
 "од","дв","три","четыре","пять","шесть", "семь","восемь", "девять",
 "руб", "тысяч","миллион","миллиард", NULL };
static long nn[] = { 100, 200, 300, 400, 500, 600, 700, 800, 900,
 20, 30, 40, 50, 60, 70, 80, 90, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -2, -3 };
/* ------------------ */
int cmpbeg(char *s, char *p)  // Сравнение начала строки s с p
{
   while(*p != '\0')
    if ((*s++) != (*p++)) return(1);
   return(0);
}
/***************/
long PropisN(char *s) // Разбор Числа прописью
{ int i, n, flag; char *p, *q; unsigned long L, LX, M;

   LX = L = 0;
   flag = 1;  // "руб" не встречался
   p = s;
   while(1) {
     while (*p==' ') p++;
     if (*p=='\0') break;
     for(i=0; prop[i]!=NULL; i++)
       if (cmpbeg(p, prop[i]) == 0) break;
     if (prop[i]==NULL) printf("%s - не распознал\n", p);
     q = strchr(p, ' ');
     if (q!=NULL) {
       *q = '\0';  // Немного портим строку s
       p = q + 1;
     }
     if (prop[i[!=NULL) {
       n = nn[i];
       if (n > 0) L += n;
       else {
         M = pow(1000, -n-1);
         if (n < 0 && L==0) L = 1; // "тысяча", а до нее ничего нет
         LX += L * M;
         L = 0;
         if (n==0) flag = 0;
       }
     }
     if (q==NULL) break; // Нет нового слова - строка кончилась
   }
   if (flag) LX += L;
   return(LX);
}
/* ------------------ */
main()
{ char b[200]; unsigned long L;

a: printf(">");
   gets(b);
   if (strlen(b)==0) return;
   L = PropisN(b);
   printf("%ld\n", L);
   goto a;
}
/**********************/
 
Текущее время: 22:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru