Новичок
Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.9.2010
Репутация: нет Всего: нет
|
Программа должна число писать прописью. Функция должна отдать пропись ........ Как правильно её оформить, что бы увидеть число прописью???Что не так в основной программе????????? Среда 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; }
|
M Earnest | Следующий раз сам используй тэг "code" - читать же невозможно!
|
|