题目是这样的:
编写程序,从终端读取一个数字,然后使用英语一位一位显示应该数字:
例如932
nine three two
申明一下:老师只讲了一些判断语句,循环语句,和一些变量的自定义.
后面的什么数组呀之类的都没有讲到
这是我昨天发的贴,我是一个新手.才学了几天,因为后面的都没讲到,以下是我自己的编的:
#include "stdio.h"
int main(void)
{
int a,b,c,weis,g;
printf ("please input the number:");
scanf ("%d",&a);
weis=1;
c=a;
if (a==0) goto panduan;
b=a/10;
/* 以下weis代表算出的位数 c算出输入数字中头一个数字*/
again:;
{
if (b!=0)
{
weis=weis+1;
c=b;
b=b/10;
goto again;
}
}
panduan:switch (c)
{
case 0:printf ("zero ");break;
case 1:printf ("one ");break;
case 2:printf ("tow ");break;
case 3:printf ("three ");break;
case 4:printf ("fore ");break;
case 5:printf ("five ");break;
case 6:printf ("six ");break;
case 7:printf ("seven ");break;
case 8:printf ("eitht ");break;
case 9:printf ("nine ");break;
}
if (weis==1) goto end;
/* 以下算出除了头一位以外的数字*/
for (g=1;g<weis;g++)
c=c*10;
a=a-c;
b=a;
weis=0;
goto again;
end:;
}
根据测试可以实现,因为是新手,后面的也都没讲到,所以编的也许太烦了一点,但现在有一个问题,我输入9876以后.可以正常输出英文,但我输入98765的时候屏幕什么都没有输出,不知道哪里出了问题.有哪位高手可以指教一下.
[此贴子已经被作者于2007-6-2 20:04:57编辑过]
----------------解决方案--------------------------------------------------------
不知道是不是编译器的问题,我用MINGW可以正确输出.....另外goto语句最好少用,会很混乱.......
----------------解决方案--------------------------------------------------------
不知道是不是编译器的问题,我用MINGW可以正确输出.....另外goto语句最好少用,会很混乱.......document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" />
我用的是 turbo C...有问题吗
----------------解决方案--------------------------------------------------------
因为turbo C的编译器98765已经超了int.而MINGW编译器的int是4字节的.
----------------解决方案--------------------------------------------------------
因为turbo C的编译器98765已经超了int.而MINGW编译器的int是4字节的.
那在 turbo C里面应该怎么定义呀????
----------------解决方案--------------------------------------------------------
/* Note:Your choice is C IDE */
#include "stdio.h"
int main(void)
{
long int a,b,c,weis,g;
printf ("please input the number:");
scanf ("%li",&a);
weis=1;
c=a;
if (a==0) goto panduan;
b=a/10;
/* 以下weis代表算出的位数 c算出输入数字中头一个数字*/
again:;
{
if (b!=0)
{
weis=weis+1;
c=b;
b=b/10;
goto again;
}
}
panduan:switch (c)
{
case 0:printf ("zero ");break;
case 1:printf ("one ");break;
case 2:printf ("tow ");break;
case 3:printf ("three ");break;
case 4:printf ("fore ");break;
case 5:printf ("five ");break;
case 6:printf ("six ");break;
case 7:printf ("seven ");break;
case 8:printf ("eitht ");break;
case 9:printf ("nine ");break;
}
if (weis==1) goto end;
/* 以下算出除了头一位以外的数字*/
for (g=1;g<weis;g++)
c=c*10;
a=a-c;
b=a;
weis=0;
goto again;
end:;
}
这样定义可以吗???我用红色标出来的..
----------------解决方案--------------------------------------------------------
long a,b,c,weis,g;
printf ("please input the number:");
scanf ("%ld",&a);
----------------解决方案--------------------------------------------------------
可以用数组来解决的 以前这样的题多的事 不必怎么麻烦
----------------解决方案--------------------------------------------------------
可以把数字当作字符处理。
----------------解决方案--------------------------------------------------------