整数的汉语读法。

给定一个32为有符号整数(int类型),输出符合汉语习惯的读法,如10086 读作“一万零八十六”。

 1 #include<iostream>
 2 #include<string>
 3 #include<math.h>
 4 using namespace std;
 5 int main()
 6 {
 7     string dw[]={"","十","百","千","万","十","百","千","亿","十"};
 8     string sz[]={"零","一","二","三","四","五","六","七","八","九"};
 9     string bc[20];
10     int n,i=0,j;
11     bool flag =false;
12     cin>>n;      // 432
13     if(n<0)
14         cout<<"负";
15     n=abs(n);
16     while(n)
17     {
18         bc[i]=sz[n%10];
19         n/=10;
20         i++;
21     }
22     j=i-1;
23     for(--i;i>0;i--)
24     {
25         flag =false;
26         while(i>0&&(bc[i]=="零"&&bc[i-1]=="零") )
27         {
28             i--;
29             if(dw[j]=="万"||dw[j]=="亿")
30              cout<<dw[j];
31             j--;
32             flag=true;
33         }
34         if(i!=0)
35           cout<<bc[i];
36         if(flag!=true&&bc[i]!="零")
37           cout<<dw[j];
38         j--;
39     }
40     if(bc[0]!="零")
41         cout<<bc[0];
42     cout<<endl;
43     return 0;
44 }
时间: 2024-08-26 10:05:14

整数的汉语读法。的相关文章

有符号整数(int)的汉语读法。

请实现一个函数,给定一个32为有符号整数(int 类型),函数输出该数字符合汉语习惯的读法.例如:10086 读作 " 一万零八十六". #include<iostream> #include<list> #include<string> #include<stdlib.h> #include<math.h> using namespace std; void m_itoa(int num,list<char> &

第五次上课博文及动手动脑

Java第五次上课课堂试验报告 1.随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 程序源代码: //随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. //王宏伟,2015,10,28 package test; import javax.swing.*; public class ShowArrays { public static void main(String[] args)

C#量转换为汉字表达

/* 创造者:菜刀打好博客 * 创建日期: 2014年09一个月04号码 * 特征:Money类型转换 * */ namespace Net.String.ConsoleApplication { using System; using System.Collections.Generic; public class MoneyHelper { public static string[] chineseDigits = new string[] { "零", "壹"

网站常用的一些javascript封装 简化调用

//用于网页地址参数 //参数中包含出了英文中文数字之外的其他符号时进行编码并在前面加"=="进行标识,否则直接返回 //解码时根据是否含有"=="标识来决定是否要解码 var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var base64Encode = new Array( -1, -1, -1, -1, -1

C#把金额转换为汉字表达式

/* 创建者:菜刀居士的博客 * 创建日期: 2014年09月04号 * 功能:Money类型转换 * */ namespace Net.String.ConsoleApplication { using System; using System.Collections.Generic; public class MoneyHelper { public static string[] chineseDigits = new string[] { "零", "壹",

动手动脑6

1.请编写一个程序将一个整数转换为汉字读法字符串. 比如"1123"转换为"一千一百二十三". 更进一步,能否将数字表示的金额改为"汉字表达? 代码: import java.util.Scanner; public class Dongnao { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System

Java数组六

1.了解如何利用二维数组和循环语句绘制五子棋盘 答:  定义一个二维数组来充当棋盘,定义棋盘大小,初始化棋盘数组,利用for循环使每一个元素赋为"+",然后输出每个数组元素,每打印完一行后在进行换行. import java.io.*; public class QiPan { //定义一个二维数组来充当棋盘 private String[][] board; //定义棋盘的大小 private static int BOARD_SIZE = 15; public void initB

java课堂动手动脑

实验任务一:阅读并运行示例PassArray.java. 1)源代码: package demo; //PassArray.java //Passing arrays and individual array elements to methods public class PassArray { public static void main(String[] args) { int a[] = { 1, 2, 3, 4, 5 }; String output = "The values of

动手动脑-数组

一. 了解如何利用二维数组和循环语句绘制棋盘. 程序源代码: import java.io.*; public class QiPan { //定义一个二维数组来充当棋盘 private String[][] board; //定义棋盘的大小 private static int BOARD_SIZE = 15; public void initBoard() { //初始化棋盘数组 board = new String[BOARD_SIZE][BOARD_SIZE]; //把每个元素赋为"╋&