求C语言题
编写一个程序,从终端读取一个数字,然后使用英语逐位的显示该数。例如,如果用户输入932,程序的输出如下:nine three two.thank you ! 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();
} 还有个更好的
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();
} 第一个程序我编译了,可以通过。但是一运行输入的数据就内存报错。
#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");
}
现在才开始学习c所以从刚开始看帖 回帖的时间可能与发帖时间差距大了
不过从版主的代码中学到了很多{:1_1:}
页:
[1]