Указатели на функцию как правильно получить значение

  • Автор темы Todeskin
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

Todeskin

#1
Программа должна число писать прописью. Функция должна отдать пропись ........ Как правильно её оформить,
что бы увидеть число прописью???
Среда ms visual c++6.0




//программа с функцией замены числа прописью
#include <iostream>
char *towords(int )
int main()
{
int n=17;
int f=--n;
int* p;
p=&f;
(*p)--;
*p==?
char b[];
towords = &b;
towords(a);
cout<< "number is " << b << endl;
return 0;
}

char *towords(int numb){
//массив, для определения разряда, в котором находимся(сотни,десятки,еденицы...)
int osn[11]={0,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};

//массив оснований
char *basis[11][10]={
{"","","","","","","","","",""},
{"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
{"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
{"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
{"","одна","две","три","четыре","пять","шесть","семь","восемь","девять"},
{"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
{"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
{"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
{"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
{"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
{"","один","два","три ","четыре","пять","шесть","семь","восемь","девять"}};

//массив окончаний
char *termination[10][10]={
{"","","","тысяч","","","миллионов","","","миллиардов"},
{"","","","тысяча","","","миллион","","","миллиард"},
{"","","","тысячи","","","миллиона","","","миллиарда"},
{"","","","тысячи","","","миллиона","","","миллиарда"},
{"","","","тысячи","","","миллиона","","","миллиарда"},
{"","","","тысяч","","","миллионов","","","миллиардов"},
{"","","","тысяч","","","миллионов","","","миллиардов"},
{"","","","тысяч","","","миллионов","","","миллиардов"},
{"","","","тысяч","","","миллионов","","","миллиардов"},
{"","","","тысяч","","","миллионов","","","миллиардов"}};

char *dec[10]={"десять","одиннадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестнадцать","семнадцать","восемнадцать","девятнадцать"};

int n1=numb;
int cnt=0;

//подсчет количесива цифр в числе
while (numb){
numb/=10;
++cnt;
}

char result[100]={};
int celoe=0;

while (n1){
if (!((cnt+1) % 3)){
if ((n1/osn[cnt])==1){
n1%=osn[cnt];
--cnt;
celoe=n1/osn[cnt];
n1%=osn[cnt];
strcat(result, dec[celoe]);
--cnt;
if (!(cnt % 3)){
strcat(result, " ");
strcat(result, termination[0][cnt]);
strcat(result, " ");
}
}
if (!cnt) break;
}
celoe=n1/osn[cnt];
n1%=osn[cnt];
strcat(result, basis[cnt][celoe]);
--cnt;
strcat(result, " ");
if (!(cnt % 3)){
strcat(result, termination[celoe][cnt]);
strcat(result, " ");
}
}
CharToOem(result,result);
return result;
}

<pre><code class="cpp"></code></pre>
 
Статус
Закрыто для дальнейших ответов.