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

Модуль для перевода числовых записей в строковые - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на условные операторы http://www.cyberforum.ru/cpp-beginners/thread1010242.html
Пусть D - заштрихованная часть плоскости. Даны действительные числа x, y. Определить u, если u определяется по x и y следующим образом: (пардон за вложение, не могу формулу правльно вставить все в квадратиках)
C++ Передача данных Помогите плз, уже несколько дней бьюсь! Вот условие . Создайте программу: с базовым классом Справочник, который включает в себя следующие данные-элементы: • Наименование продукции; • Код продукции; методы – конструкторы, деструктор, show() базовым классом Остатки на начало месяца: • Остатки на начало месяца; методы – конструкторы, деструктор, show() Производный класс Сведения о выпуске... http://www.cyberforum.ru/cpp-beginners/thread1010234.html
C++ Задача на условные операторы
Пусть D - заштрихованная часть плоскости. Даны действительные числа x, y. Определить u, если u определяется по x и y следующим образом:
C++ Моя реализация гравитации на моем физическом движке
Моя реализация гравитации на моем физическом движке. В общем и целом: движок содержит класс PowerVector (направленная сила). Движок содержит объект круг с параметрами: радиус, плотность, положение, скорость и силы PowerVector, действующие на нее. Все данные разделяются на 2 части: по X и по Y. На основе этих классов (движка) я написал систему взаимодействий сил гравитации (каждый объект...
C++ Проверьте код пожалуйста http://www.cyberforum.ru/cpp-beginners/thread1010210.html
В чем ошибка? Если он в ответе выдает только: Vvedite element massiva: A= #include "stdafx.h" #include <stdio.h> #include <conio.h> const int N=10; int main() {
C++ Шаблон класса для работы с комплексными числами Есть такая программа: #include "stdafx.h" #include <iostream> using namespace std; template< class T > class Complex; template< class T > подробнее

Показать сообщение отдельно
noomer
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
29.11.2013, 18:51  [ТС]     Модуль для перевода числовых записей в строковые
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
72
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
 
const char
 *str0[10]=
 {"","один ","два ","три ","четыре ",
 "пять ","шесть ","семь ","восемь ","девять "},
 *str10[10]=
 {"десять ","одиннадцать ","двенадцать ","тринадцать ","четырнадцать ","пятнадцать ",
 "шестнадцать ","семнадцать ","восемнадцать ","девятнадцать "},
 *str1[10]=
 {"","","двадцать ","тридцать ","сорок ",
 "пятьдесят ","шестьдесят ","семьдесят ","восемьдесят ","девяносто "},
 *str2[10]=
 {"","сто ","двести ","триста ","четыреста ",
 "пятьсот ","шестьсот ","семьсот ","восемьсот ","девятьсот "},
 *thous[10]={"","одна ","две ","три ","четыре ","пять ","шесть ","семь ",
 "восемь ","девять "},
 *thouschar[2][3] = {{"миллион ", "миллиона ", "миллионов " },
            {"тысяча ",  "тысячи ",   "тысяч " }}
;
// главная программа:
int main()
{
int d[9],k,i,t;
unsigned int n;
 char sum[300];
 clrscr();
 cout<< "введите натуральное число n "; cin>> n;
 t=n; k=0;
 for(i=0;i<9;i++) d[i]=0;
 while (t>=10) {
   d[k++]=t%10; t=t/10;
 }
 d[k++]=t%10;
 unsigned d0=d[0],d1=d[1],d2=d[2],d3=d[3],d4=d[4],d5=d[5],d6=d[6],
      d7=d[7],d8=d[8];
 strcpy(sum,"");
 strcat(sum,str2[d8]);
 if(d7==1) strcat(sum,str10[d6]);
 else
{ strcat(sum,str1[d7]);
  strcat(sum,str2[d6]);
}
 if(d7>10 && d7<20 || d6>4) strcat(sum,thouschar[1][3]);
 if(d6==1) strcat(sum,thouschar[1][1]);
 else strcat(sum,thouschar[1][2]);
 
 
 
 strcat(sum,str2[d5]);
 if (d4==1) strcat(sum,str10[d3]);
 else{
 strcat(sum,str1[d4]);
 strcat(sum,thous[d3]);
 }
 
 if (d4>10 && d4<20 || d3>4) strcat(sum,thouschar[2][3]);
 if (d3==1) strcat(sum,thouschar[2][1]);
 else strcat(sum,thouschar[2][2]);
 
 strcat(sum,str2[d2]);
 if(d1==1) strcat(sum,str10[d0]);
 else{strcat(sum,str1[d1]);strcat(sum,str0[d0]);}
  if (n==0) strcpy(sum,"ноль");
 else sum[strlen(sum)-1]=0;
 //вывод:
 printf("\n%d число прописью:\n%s.\n",n,sum);
 return 0;
 }
Так,здесь не получается с миллионами,там если ввожу тип n как unsigned long, то он вообще выводит null.
И чего-то с тысячами напортачила,если например введу 21 900, он мне напишет тысяч двадцать одна девятьсот.
Может ктоо нибудь помоооожет?
Просто я перерыла уже весь интернет,а разобраться не могу
 
Текущее время: 14:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru