一个有时可以运行有时不可以的程序(有注解和算法),不知错在哪
pydqh 2003-10-19 02:05:04 这是一个输入一个单词,输出相应数字的程序。例如,输入one hundred,输出100。
这个程序用UNIX下的C语言写。我的程序分成两个部份。函数smallword()用来处理百位以下的数,这个函数可以运行。用这个程序处理百位以上的数就有问题。这个程序可以通过编译,有时候可以运行,有时候不可以。会不会是因为我用了数组指针的关系我想了很久都找不到原因,请指教。程序内容在下面。
我的算法是:把整个单词用strtok()把它分开成一个一个独立的单词,然后存在指针数组string里面,例如:输如one million one thusand one hundred,运行strtok()后,string[1]=one,string[2]=million,string[3]=one,string[4]=thousand,string[5]=one. 然后按四种情况处理:1.有“million” 和“thousand”;2. 有“million”, 没有“thouand”;3. 没有“thoudsand” ,有“thousand”;4. 没有“million”, 没有“thousand”.
最后调用写好的处理三位数的函数smallword()去处理每一部分:million前的部分,million和thousand之间的部份,百位以下的部分。