| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:根据昨天发的贴碰到的C语言的问题
取消只看楼主 加入收藏
jstxlwl118
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-6-1
收藏
 问题点数:0 回复次数:3 
根据昨天发的贴碰到的C语言的问题

题目是这样的:

编写程序,从终端读取一个数字,然后使用英语一位一位显示应该数字:
例如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编辑过]

搜索更多相关主题的帖子: C语言 
2007-06-02 20:01
jstxlwl118
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-6-1
收藏
得分:0 
以下是引用killer_l在2007-6-2 20:11:19的发言:
不知道是不是编译器的问题,我用MINGW可以正确输出.....另外goto语句最好少用,会很混乱.......

我用的是 turbo C...有问题吗

2007-06-02 21:09
jstxlwl118
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-6-1
收藏
得分:0 
以下是引用nuciewth在2007-6-2 21:22:04的发言:

因为turbo C的编译器98765已经超了int.而MINGW编译器的int是4字节的.

那在 turbo C里面应该怎么定义呀????

2007-06-02 21:23
jstxlwl118
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-6-1
收藏
得分:0 
/* 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:;

}


这样定义可以吗???我用红色标出来的..
2007-06-02 21:34
快速回复:根据昨天发的贴碰到的C语言的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033539 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved