编写一个程序,用于接受从终端输入的证书,提取并采用英语现实这个数的每一个数字。如输入932 应显示:
nine
three
two
下面是我的代码,不知道为什么输出的时候,只能输出一位,比如输入932,输出nine。
求大神指导~
int main(int argc, const char * argv[]) {
@autoreleasepool { // insert code here... int x,y,n,i,number; NSLog(@"please input a number:"); scanf("%i",&x); n=1; i=1; y=x; while (y/10!=0) { y/=10; n*=10; i++; } while(i!=0) { number=x/n; switch (number) { case 0: NSLog(@"zero"); break; case 1: NSLog(@"one"); break; case 2: NSLog(@"two"); break; case 3: NSLog(@"three"); break; case 4: NSLog(@"four"); break; case 5: NSLog(@"five"); break; case 6: NSLog(@"six"); break; case 7: NSLog(@"seven"); break; case 8: NSLog(@"eight"); break; case 9: NSLog(@"nigh"); break; } n/=10; i--; } } return 0;
}
你这个写的真的槽点多多,分类是iOS不是ISO,另外这个主要是一个语法问题,扯不上iOS,变量名惨不忍睹,这个题给你个思路,拿到的数据放入数组,每次拿出来一个Switch就好了
你最后好歹把x剪一下。除了第一次是9。后面就93了。在想什么.而且这个和iOS有半毛钱关系
大概,用个数组就行了。
原理是用数字去对应数组
下标
。Obj-C的语法不会。
写个JAVA,大致是一样的。
输出:
仅供参考。
Ps. 能不用switch的,尽量不用吧,还有变量命名尽量有意义,不要xyznmi这种东西。
取余操作不是更简单!