ios简单问题,求大神回答。。
William Shakespeare
William Shakespeare 2017-04-17 17:17:16
0
5
459

编写一个程序,用于接受从终端输入的证书,提取并采用英语现实这个数的每一个数字。如输入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;

}

William Shakespeare
William Shakespeare

闭关修行中......

Antworte allen (5)
洪涛
#include  int main(int argc, const char * argv[]) { int x = 0,length = 0,y; printf("Please input a number:"); scanf("%d",&x); y=x; while (y/10 != 0) { length++; y = y/10; } for (int i=length; i >= 0; i--) { int tmp = 1; for (int j = 0; j < i; j++) { tmp *= 10; } switch (x / tmp) { case 1: printf("one\n"); break; case 2: printf("two\n"); break; case 3: printf("three\n"); break; case 4: printf("for\n"); break; case 5: printf("five\n"); break; case 6: printf("six\n"); break; case 7: printf("seven\n"); break; case 8: printf("eight\n"); break; case 9: printf("nine\n"); break; case 0: printf("zore\n"); break; } x = x%tmp; } return 0; }
    左手右手慢动作

    你这个写的真的槽点多多,分类是iOS不是ISO,另外这个主要是一个语法问题,扯不上iOS,变量名惨不忍睹,这个题给你个思路,拿到的数据放入数组,每次拿出来一个Switch就好了

      刘奇

      你最后好歹把x剪一下。除了第一次是9。后面就93了。在想什么.而且这个和iOS有半毛钱关系

        伊谢尔伦

        大概,用个数组就行了。
        原理是用数字去对应数组下标
        Obj-C的语法不会。
        写个JAVA,大致是一样的。

        public static void main(String args[]) { String str = "932"; //将接收来的证书直接分割为一个一个字符,然后循环 for (char num : str.toCharArray()) { System.out.println(numToEn(num)); } } private static String numToEn(char num){ String[] arr = {"one","two","three","four","five","six","seven","eight","nine","ten"}; return arr[Integer.parseInt(String.valueOf(num))-1]; }

        输出:

        nine three two

        仅供参考。

        Ps. 能不用switch的,尽量不用吧,还有变量命名尽量有意义,不要xyznmi这种东西。

          巴扎黑

          取余操作不是更简单!

            Neueste Downloads
            Mehr>
            Web-Effekte
            Quellcode der Website
            Website-Materialien
            Frontend-Vorlage
            Über uns Haftungsausschluss Sitemap
            Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!