chenyuwei 发表于 2011-3-23 09:40:44

求C语言题

编写一个程序,从终端读取一个数字,然后使用英语逐位的显示该数。例如,如果用户输入932,程序的输出如下:nine three two.
thank you !

qq348093088 发表于 2011-3-25 03:56:25

main(){
    int i,div=10;
    unsigned int number,*p=0;
    printf("Please input number( number<65536 ): ");
    scanf("%d",&number);
    printf("The number is: ");
    for(i=0;number/div>0;i++,*p++){
      *p=number % div;
      number=number/div;
    }
    for(*p=number%div;i>=0;*p--,i--){
      switch(*p){
            case 1:printf("one ");break;
            case 2:printf("two ");break;
            case 3:printf("three ");break;
            case 4:printf("four ");break;
            case 5:printf("five ");break;
            case 6:printf("sex ");break;
            case 7:printf("seven ");break;
            case 8:printf("eight ");break;
            case 9:printf("nine ");break;
            default:printf("zero ");
      }
    }
    getch();
}

qq348093088 发表于 2011-3-26 03:32:04

还有个更好的
char str='0',*p;
main(){
    printf("Please input number: ");
loop:
    p = &str;
    scanf("%s",p);
    for(;*p!='\0';p++){
      if(*p<48||*p>57){
            printf("Error!!!");
            printf("\nPlease input 0~1: ");
            goto loop;
      }
    }
    p = &str;
    printf("The number is: ");
    for(;*p!='\0';p++){
      switch(*p-48){
            case 1:printf("one ");break;
            case 2:printf("two ");break;
            case 3:printf("three ");break;
            case 4:printf("four ");break;
            case 5:printf("five ");break;
            case 6:printf("sex ");break;
            case 7:printf("seven ");break;
            case 8:printf("eight ");break;
            case 9:printf("nine ");break;
            default:printf("zero ");
      }
    }
    getch();
}

chenyuwei 发表于 2011-3-28 10:28:34

第一个程序我编译了,可以通过。但是一运行输入的数据就内存报错。

仰望天上的光 发表于 2011-3-28 21:59:37


#include<stdio.h>
#include<string.h>
int main(){
        int i,length;
        char* map={"zero","one","two","three",
                "four","five","six","seven","eight","nine"};
        char buf;
        scanf("%s",buf);
        length = strlen(buf);
        for(i=0;i<length;++i) printf("%s ",map-'0']);
        printf("\n");
}

x8888k 发表于 2011-3-29 17:58:29

theonethatgot 发表于 2014-5-17 11:52:02

现在才开始学习c所以从刚开始看帖   回帖的时间可能与发帖时间差距大了
不过从版主的代码中学到了很多{:1_1:}
页: [1]
查看完整版本: 求C语言题