黑马程序员技术交流社区
标题: 金额转换的题目 [打印本页]
作者: 13717407086 时间: 2016-5-13 21:54
标题: 金额转换的题目
//-21. 金额转换,阿拉伯数字转换成中国传统形式。例如:1 0 1 0 0 0 0 0 1 0 1 0 转换为 壹仟零壹拾亿零壹仟零壹拾圆整 ok
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
//接受输入的数字
char arr[200];
printf("请输入你的身价\n");
scanf("%s",arr);
for (int i = 0; i < strlen(arr); i++) {
switch (arr) {
case '0':
printf("零");
break;
case '1':
printf("壹");
break;
case '2':
printf("贰");
break;
case '3':
printf("叁");
break;
case '4':
printf("肆");
break;
case '5':
printf("伍");
break;
case '6':
printf("陆");
break;
case '7':
printf("柒");
break;
case '8':
printf("捌");
break;
case '9':
printf("玖");
break;
default:
break;
}
}
//
return 0;
}
请问这个数字转换的题目 我要怎样才能把后面的单位添加进去啊!而且题目没给上限,如果考试考到一般写到哪个单位就可以了啊
作者: buzheng 时间: 2016-5-14 19:16
本题重点是把这个数多少位求出来并一位一位的拆开,另int 型最大值为 2^ 32,最多是10位数的整数. 代码如下:
#include<stdio.h>
#include<math.h>
void zhongWen(int a);
void danWei(int a);
int getLen(int num);
int main()
{
int num = 0;
printf("请输入一个整数:");
scanf("%d",&num);
//复制这个数
int num1 = num;
//求出有多少位
int wei = getLen(num1);
//建一个数组包含把数字单个拆分后存起来并输出
int len = wei;
int shuShu[len];
for(int i = 0; i < wei; i++)
{
int j = pow(10,wei - 1 - i);
shuShu = num1 / j;
num1 = num1 % j;
zhongWen(shuShu);
danWei(len - 1 - i);
}
printf("\n");
}
int getLen(int num)
{
int rest = num;
int i = 0;
int mod = (int)pow(10,0);
do
{
mod = (int)pow(10,i);
i++;
}while (rest / mod != 0);
return i-1;
}
void zhongWen(int a)
{
switch (a)
{
case 0:
printf("零");
break;
case 1:
printf("壹");
break;
case 2:
printf("贰");
break;
case 3:
printf("叁");
break;
case 4:
printf("肆");
break;
case 5:
printf("伍");
break;
case 6:
printf("陆");
break;
case 7:
printf("柒");
break;
case 8:
printf("捌");
break;
case 9:
printf("玖");
break;
default:
break;
}
}
void danWei(int a)
{
switch (a)
{
case 0:
printf("元");
break;
case 1:
printf("拾");
break;
case 2:
printf("百");
break;
case 3:
printf("千");
break;
case 4:
printf("万");
break;
case 5:
printf("拾");
break;
case 6:
printf("百");
break;
case 7:
printf("千");
break;
case 8:
printf("亿");
break;
case 9:
printf("拾");
break;
default:
break;
}
}
作者: buzheng 时间: 2016-5-14 19:18
为什么要把这个输入的数复制一下?是为了防止后续需要使用这个原始值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |