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

Тема в разделе "MS Visual C++", создана пользователем Todeskin, 8 сен 2010.

Статус темы:
Закрыта.
  1. Todeskin

    Todeskin Гость

    Программа должна число писать прописью. Функция должна отдать пропись ........ Как правильно её оформить,
    что бы увидеть число прописью???
    Среда 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>
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей