找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 404|回复: 9

[求助]我今天考试没有做出来的题目

[复制链接]
发表于 2009-11-6 01:29:40 | 显示全部楼层 |阅读模式 IP:江苏扬州
请问下如果输入一个大于等于0,小于等于9999的正整数,要输出汉字怎么办?请教下
例如:输入8002,输出应该为八千零二元
发表于 2009-11-6 01:29:41 | 显示全部楼层 IP:江苏扬州
这个论坛里有写过,你搜搜看!
回复

使用道具 举报

发表于 2009-11-6 01:29:42 | 显示全部楼层 IP:江苏扬州
典型题目 我也看看``
不过应该蛮简单的``
回复

使用道具 举报

发表于 2009-11-6 01:29:43 | 显示全部楼层 IP:江苏扬州
呵呵,以前写过了一下~~~

现在重新发给你,不过代码里有点小问题的~~

你自己去补一下好了

#include<iostream>
using namespace std;
void main()
{
char s[10]; //设置数组,最大长度为10;
cout<<"输入数字:\t";
cin>>s;
int i=0,l=0; //设置两个记数器;

while(s[i]=='0') //防止地第一位元素为0;
{
i++;
}
for(int n=i;s[n]!='\0';) //变量L是为了记录该数字的位数;
{
l++;
n++;
}

for(;s[i]!='\0';i++) //整数部分
{
switch(s[i]) //对数字进行分类操作
{
case'1':cout<<"一";break;
case'2':cout<<"二";break;
case'3':cout<<"三";break;
case'4':cout<<"四";break;
case'5':cout<<"五";break;
case'6':cout<<"六";break;
case'7':cout<<"七";break;
case'8':cout<<"八";break;
case'9':cout<<"九";break;
case'0':
{
if(s[i+1]=='.') break;
else if(s[i-1]!='0') {cout<<"零";break;}
}
}
if(s[i]!='0') //0的话不需要读出位数
{
switch(l) //对位数进行分类操作
{
case 9 :cout<<"亿";break;
case 8 :cout<<"千万";break;
case 7 :cout<<"百万";break;
case 6 :cout<<"十万";break;
case 5 :cout<<"万";break;
case 4 :cout<<"千";break;
case 3 :cout<<"百";break;
case 2 :cout<<"十";break;
default:break;
}
}
l--;
}
cout<<"元"; //最后输出单位“元”;
cout<<"整";
cout<<endl;
}
回复

使用道具 举报

发表于 2009-11-6 01:29:44 | 显示全部楼层 IP:江苏扬州
有点小问题~~~

当输入800的时候,

打印出来的是八百零元,而不是日常用的八百元

我等一下再去改
回复

使用道具 举报

发表于 2009-11-6 01:29:45 | 显示全部楼层 IP:江苏扬州
........
回复

使用道具 举报

发表于 2009-11-6 01:29:47 | 显示全部楼层 IP:江苏扬州
改好了#include<iostream>
using namespace std;
void main()
{
char s[10]; //设置数组,最大长度为10;
cout<<"输入数字:\t";
cin>>s;
int i=0,l=0; //设置两个记数器;
int cheat=0;
while(s[i]=='0') //防止地第一位元素为0;
{
i++;
}
for(int n=i;s[n]!='\0';) //变量L是为了记录该数字的位数;
{
l++;
n++;
}

for(;s[i]!='\0';i++) //整数部分
{
switch(s[i]) //对数字进行分类操作
{
case'1':cout<<"一";break;
case'2':cout<<"二";break;
case'3':cout<<"三";break;
case'4':cout<<"四";break;
case'5':cout<<"五";break;
case'6':cout<<"六";break;
case'7':cout<<"七";break;
case'8':cout<<"八";break;
case'9':cout<<"九";break;
case'0':
{
if(s[i+1]=='\0') break;
else if(s[i+1]!='0'&&l!=5) {cout<<"零";break;}
}
}
//0的话不需要读出位数
switch(l) //对位数进行分类操作
{
case 9 :if(s[i]!='0') cout<<"亿";break;
case 8 :if(s[i]!='0') cout<<"千";cheat=1;break;
case 7 :if(s[i]!='0') cout<<"百";cheat=1;break;
case 6 :if(s[i]!='0') cout<<"十";cheat=1;break;
case 5 :if(s[i]!='0'||cheat==1) cout<<"万";break;
case 4 :if(s[i]!='0') cout<<"千";break;
case 3 :if(s[i]!='0') cout<<"百";break;
case 2 :if(s[i]!='0') cout<<"十";break;
default:break;
}
l--;
}
cout<<"元"; //最后输出单位“元”;cout<<"整";
cout<<endl;
}
~~~
回复

使用道具 举报

发表于 2009-11-6 01:29:48 | 显示全部楼层 IP:江苏扬州
ls的代码还有一点小小的问题;
比如10应该为十元整而不应该是一十元整;
同样的问题还有11-19;
回复

使用道具 举报

发表于 2009-11-6 01:29:49 | 显示全部楼层 IP:江苏扬州
这个小问题被广泛地运用于银行的系统
回复

使用道具 举报

发表于 2009-11-6 01:29:51 | 显示全部楼层 IP:江苏扬州
以下是引用BJSH在2007-5-24 9:35:51的发言:

ls的代码还有一点小小的问题;
比如10应该为十元整而不应该是一十元整;
同样的问题还有11-19;




我觉得一十元整 也有这样说得..没错误的,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 17:38 , Processed in 0.202847 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表