编写一个程序,用于接受从终端输入的证书,提取并采用英语现实这个数的每一个数字。如输入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这种东西。
取余操作不是更简单!