# 判断是否为润年&&键盘输入一个10000以内的大于零的正整数，输出相应中文标识

263人阅读 评论(0)

using System;

//using System.Collections.Generic;
//using System.Linq;
//using System.Text;

namespace h1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("1.判断是否为润年\n2.键盘输入一个10000以内的大于零的正整数，输出相应中文标识\n请输入相应的数字：");
int choice = int.Parse(w);

//判断是否为润年
if (choice == 1)
{
Console.WriteLine("请输入年份：");
int year = int.Parse(x);
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
Console.WriteLine("{0}是润年", year);
}
else
{
Console.WriteLine("{0}不是润年", year);
}
}

//键盘输入一个10000以内的大于零的正整数，输出相应中文标识
else if (choice == 2)
{
Console.WriteLine("请输入一个10000以内的大于零的正整数：");
int num = int.Parse(y);
if (num > 0 && num < 10)
{
Console.WriteLine(Enum.GetName(typeof(number), num));
}//判断一位数
else if (num >= 10 && num < 100)
{
int m = num / 10;
int n = num % 10;
if (n != 0)
{
Console.WriteLine(Enum.GetName(typeof(number), m) + "十" + Enum.GetName(typeof(number), n));
}
else
{
Console.WriteLine(Enum.GetName(typeof(number), m) + "十");
}
}//判断两位数
else if (num >= 100 && num < 1000)
{
int a = num / 100; //百位
int n = num % 100;
int b = n / 10;//十位
int c = n % 10;//个位
if (c != 0 && b != 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "百" + Enum.GetName(typeof(number), b) + "十" + Enum.GetName(typeof(number), c));
}
else if (c != 0 && b == 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "百零" + Enum.GetName(typeof(number), c));
}
else if (c == 0 && b != 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "百" + Enum.GetName(typeof(number), b) + "十");
}
else
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "百");
}
}//判断三位数
else if (num >= 1000 && num < 10000)
{
int a = num / 1000; //千位
int m = num % 1000;
int b = m / 100;//百位
int n = m % 100;
int c = n / 10;//十位
int d = n % 10;//个位
if (c != 0 && b != 0 && d != 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "千" + Enum.GetName(typeof(number), b) + "百" + Enum.GetName(typeof(number), c) + "十" + Enum.GetName(typeof(number), d));
}
else if (b != 0 && c != 0 && d == 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "千" + Enum.GetName(typeof(number), b) + "百" + Enum.GetName(typeof(number), c) + "十");
}
else if (b != 0 && c == 0 && d != 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "千" + Enum.GetName(typeof(number), b) + "百零" + Enum.GetName(typeof(number), d));
}
else if (b == 0 && c != 0 && d != 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "千零" + Enum.GetName(typeof(number), c) + "十" + Enum.GetName(typeof(number), d));
}
else if (b == 0 && c == 0 && d != 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "千零" + Enum.GetName(typeof(number), d));
}
else if (b == 0 && c != 0 && d == 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "千零" + Enum.GetName(typeof(number), c) + "十");
}
else if (b != 0 && c == 0 && d == 0)
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "千" + Enum.GetName(typeof(number), b) + "百");
}
else
{
Console.WriteLine(Enum.GetName(typeof(number), a) + "千");
}
}//判断四位数
else
{
Console.WriteLine("输入数值不在范围内");
}
}
else {
Console.WriteLine("输入正确的选项");
}
}

enum number {
零 = 0,
一 = 1,
二 = 2,
三 = 3,
四 = 4,
五 = 5,
六 = 6,
七 = 7,
八 = 8,
九 = 9
}
}

}

//键盘输入需要转换的数字
int i = int.Parse(str);
string st = "";
//声明使用的变量和除数，这里最大为5位正整数，所以除数从10000开始
int temp, data = 10000;
//数字会在转换为中文后，自减为零，表示转换完毕
while (i > 0)
{
//除数取整，会获得一个整数，比如  234/100=2
temp = i / data;
//结果不为零，需要转为相应的中文
if (temp > 0)
{
st += Enum.GetName(typeof(Number), temp);
//根据除数加上合适的单位
switch (data)
{
case 10000:
st += "";
break;
case 1000:
st += "";
break;
case 100:
st += "";
break;
case 10:
st += "";
break;
}
}
//结果为零也是需要转为相应的中文
else
{
//如果首位结果不为零，才需要添加
if (st.Length > 0)
{
st += Enum.GetName(typeof(Number), temp);
}
}
//输入的数字减去已经转换的部分
i -= temp * data;
//除数自除10，计算下一级
data /= 10;
}
//可能出现的连续3个零置换，比如10009，需要读为一万零九而不是一万零零零九
st = st.Replace("零零零", "");
//可能出现的连续3个零置换，比如1009，需要读为一千零九而不是一千零零九
st = st.Replace("零零", "");
//输出转换结果
Console.WriteLine(st);

0
0

个人资料
• 访问：10534次
• 积分：598
• 等级：
• 排名：千里之外
• 原创：50篇
• 转载：0篇
• 译文：1篇
• 评论：2条
最新评论