| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:根据昨天发的贴碰到的C语言的问题
只看楼主 加入收藏
jstxlwl118
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-6-1
收藏
 问题点数:0 回复次数:8 
根据昨天发的贴碰到的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
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 
不知道是不是编译器的问题,我用MINGW可以正确输出.....另外goto语句最好少用,会很混乱.......
图片附件: 游客没有浏览图片的权限,请 登录注册


2007-06-02 20:11
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
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

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


倚天照海花无数,流水高山心自知。
2007-06-02 21:22
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
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
long a,b,c,weis,g;
printf ("please input the number:");
scanf ("%ld",&a);

倚天照海花无数,流水高山心自知。
2007-06-02 22:15
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
可以用数组来解决的 以前这样的题多的事 不必怎么麻烦

羊肉串 葡萄干 哈密瓜!!
2007-06-02 22:38
千金散尽
Rank: 1
等 级:新手上路
威 望:2
帖 子:55
专家分:0
注 册:2007-5-23
收藏
得分:0 

可以把数字当作字符处理。


才明白但已经晚了,希望结识想创业的朋友。
2007-06-03 04:22
快速回复:根据昨天发的贴碰到的C语言的问题
数据加载中...
 
   



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

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