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

Вывести число прописью - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите хороший справочник по синтаксису http://www.cyberforum.ru/cpp-beginners/thread83643.html
Подскажите хороший справочник по синтаксису "С", ато во всём, что скачиваю чаще-всего одна "философия" программирования, вместо чётких указаний и формул:rtfm:
C++ Голодная коза на веревке. Есть квадратное поле с травой, сторона квадрата - N. В центре поля привязана веревка длины r. К другому концу веревки привязана коза. Коза поедает всю траву, до которой может дотянуться, при этом ей мешает длина веревки. Ввод: В первой строке файла input содержатся два целых числа N и r через пробел. 1<=N,r<=100 Ограничения: время счета - 1 сек, объем памяти: 16 Mb Вывод: С точностью до... http://www.cyberforum.ru/cpp-beginners/thread83603.html
C++ C# как редактировать word документ?
Привет, есть рутинная работа на MS Word. В сделанной таблице нужно заменять цифры на последовательные для дальнейшей печати например 1111 1112 1113 в следующий раз 1111 заменить на 1114 и тд (естественно эти цифры в ячейках, в каждой ячейке логотип и тд.) Подкажите пожалуйста способ, каким образом сделать, чтобы программа автоматом заменяла, и работала именно в ворде? с макросами не...
C++ atof и atoi
Помогите пожалуйста, разобратся что такое atof, atoi, как работает, что делает?
C++ Связные списки http://www.cyberforum.ru/cpp-beginners/thread83574.html
Написать функцию, удаляющую из исходной строки заданный символ. Например, удаление символа ‘i’ из строки “cabin heating” дает в результате “cabn heatng” Есть код написанный с реализцией классов ,нужно изменить под связные списки. #include <iostream> #include <conio.h> using namespace std; class eraseSymbol {
C++ C++, Помочь разобраться в готовом коде Здравствуйте, я заказала по интернету код программы для решения следующей задачи: В задании курсового проекта необходимо создать программу, которая содержит текущую информацию о книгах в библиотеке. Сведения включают: • Номер УДК • Фамилию и инициалы автора • Название книги • Год издания • Количество экземпляров Программа должна обеспечивать: • Начальное формирование данных обо всех... подробнее

Показать сообщение отдельно
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
10.01.2010, 23:09     Вывести число прописью
Можно попробовать так:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <stdio.h>
 static char *sot[]={"сто","двести","триста","четыреста",
             "пят","шест", "сем","восем","девят" };
 static char *desiat[]={" двадцать"," тридцать"," сорок"," пят"," шест",
                " сем"," восем"," девяносто" };
 static char *edm[]={""," один"," два"," три"," четыре"," пять"," шесть",
             " семь"," восемь",
             " девять"," десять"," один"," две"," три",
             " четыр"," пят"," шест"," сем"," восем"," девят" };
 static char *edw[]={" одна"," две" };
 static char *nmtr[]={" тысяч"," миллион"," миллиард", " триллион",
               " квадриллион", " квинтиллион", " сектиллион", " септаллион", NULL };
         // дальше не знаю, м.б. товарищи подскажут ...
 static char *nokm[]={"а","ов" };
 static char *nokt[]={"а","и","" };
/* ------------------ */
Propis2(unsigned long L, int n, char *s) // Число прописью
{ int R, ns, nd, r; char *p; unsigned long M;
 
   M = L / 1000;
   R = L % 1000;
   if (M != 0) Propis2(M, n+1, s);  // Рекурсия!
   if (R==0) return;
   ns = R / 100;
   if (ns)    sprintf(s+strlen(s), " %s", sot[ns-1]);
   if (ns>=5) strcat(s, "ьсот");
   R = R % 100;  // < 100
   nd = R / 10;  // Десятки
   if (nd >= 2) {
      strcat(s, desiat[nd-2]);
      if (nd>=5 && nd<=8) strcat(s, "ьдесят");
      R = R % 10;
   }
   r = sklon(R);
   if (n==1 && R>0 && R<3) p = edw[R-1];
   else                    p = edm[R];
   strcat(s, p);
   if (R > 10) strcat(s, "надцать");
   if (n > 0) {
     strcat(s, nmtr[n-1]);
     if     (n==1) strcat(s, nokt[r]);
     else if (r>0) strcat(s, nokm[r-1]);
   }
}
/*********************/
sklon(int dd)    /* Определение склонения числа */
{ int n, r;
 
    r = 2;
    n = dd % 100;
    if (n>4 && n<20) return(r);
    n = n % 10;
    if      (n==1)       r = 0;
    else if (n>1 && n<5) r = 1;
    return(r);
}
/* ------------------ */
long atol(char *b);
main()
{ char b[200], s[1000]; unsigned long L;
 
a: printf(">");
   gets(b);
   if (strlen(b)==0) return;
   s[0] = '\0';
   L = atol(b);
   Propis2(L, 0, s);
   printf("%s\n", s);
   goto a;
}
/**********************/
Этот алгоритм несложно модифицировать и для более длинных чисел,
стоит только выбрать для них подходящее представление.
 
Текущее время: 00:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru