首页 > ios简单问题,求大神回答。。

ios简单问题,求大神回答。。

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

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这种东西。


#include <stdio.h>

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;
}

取余操作不是更简单!

【热门文章】
【热门文章】