币值转换编程总结

7-1 币值转换 (20 分)

输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。

 

1)   实验代码:

 

#include<stdio.h>

#include<math.h>

int main()

{

    int yuan,chu_2,chu_1,i,p,a=0;

    char op;

    scanf("%d",&yuan);

   

    chu_1=yuan;

    for(i=-1;chu_1!=0;i++){   

        chu_1=chu_1/10;

    }

    int A[i];

    chu_1=yuan;

    for(a=0;chu_1!=0;i--,a++){    //从最大数位开始逐个取出各数字

        p=pow(10,i);

        chu_2=chu_1/p;

        chu_1=chu_1%p;  

        switch(chu_2){     //从最大数位开始逐个输出 

             case 0:op='a';break;

             case 1:op='b';break;

             case 2:op='c';break;

             case 3:op='d';break;

             case 4:op='e';break;

             case 5:op='f';break;

             case 6:op='g';break;

             case 7:op='h';break;

             case 8:op='i';break;

             case 9:op='j';break;

        }

        A[a]=chu_2; //记录数字

        if(chu_2==0){ //零为特殊情况,需要单独判断

             if(i==6&&A[a-1]!=0)

                 printf("W");

             if(i==5&&A[a-1]!=0)

                 printf("W");

             if(i==4&&A[a-1]!=0)

                 printf("W");

             if(A[a-1]!=0&&i<8)     //若前一位不为零,则输出零

                 printf("%c",op);

        }

        if(chu_2!=0)     //不为零的情况可以直接按规律输出

             printf("%c",op);

        if(i==5&&chu_2!=0)     //当数位大于万位时是特殊情况,需要调整大写字母的输出

             printf("S");

        if(i==6&&chu_2!=0)

             printf("B");

        if(i==7&&chu_2!=0)

             printf("Q");        

        if(i==8&&chu_2!=0)

             printf("Y");

        if(i-1>=0&&chu_2!=0&&i-1<=4)     //数位小于或等于万位时为通常情况,直接按规律输出   

             switch(i){

                 case 1:printf("S");break;

                 case 2:printf("B");break;

                 case 3:printf("Q");break;

                 case 4:printf("W");break;

        }

        }

        if(yuan==0)    //若币值为零,则直接输出字母a后结束程序

             printf("a");

    return 0;

}

 

2)     设计思路:

第一步:代码分为输出代表数字的小写字母部分和代表数位的大写字母部分。

第二步:小写字母部分又分为数字为零的特殊情况和非零的通常情况,大写字母部分又分为数位大于万位的特殊情况和小于等于万位的通常情况。

第三步通常情况都为直接输出对应的字母,特殊情况按情况讨论。以下为流程图。

 

3)调试过程中遇到的问题

关于取出的数字为零时如何调整输出方式:

     当取出零时需要先判断这个零是否需要输出,我们知道,当前一位也为零时,口语上需要将这个零省略。因此我们只需要判断前一位是什么数字就可以确定是否输出这个零。我们可以用数组A记录下之前取出的所有数字,然后根据循环数给每个取出的数字编号,若想知道前一位数是什么,只需要取出数组A中的第i-1个数字即可。

 

4)解决方法:

在编译器上面进行编译运行,发现编译错误的地方,其次用调试的方法去寻找答案错误的地方,还要就是去询问同学,上网查找。

5)错误截图:

 

转载于:https://www.cnblogs.com/LeoQ/p/10413147.html

### 回答1: 当然,我可以用Python来写一个简单的程序来将日元和美元之间进行转换。下面是一个示例程序: ```python # 获取用户输入的金额和货币类型 amount = float(input("请输入金额:")) currency = input("请输入货币类型(USD或JPY):") # 根据货币类型进行转换 if currency == "USD": jpy_amount = amount * 109.08 print("转换结果:{:.2f} 日元".format(jpy_amount)) elif currency == "JPY": usd_amount = amount / 109.08 print("转换结果:{:.2f} 美元".format(usd_amount)) else: print("无效的货币类型,请输入USD或JPY。") ``` 这个程序会首先询问用户要转换的金额和货币类型,然后根据货币类型进行转换并打印出转换结果。在这个示例中,我们使用了一个简单的if-else语句来根据用户输入的货币类型来执行相应的转换计算。转换率是根据当前汇率计算得出的,可能不是最新的汇率,如果需要更精确的结果,需要使用更精确的汇率数据。 ### 回答2: 下面是一个用Python编写的日元和美元币值转换程序的示例代码: ```python def convert_currency(amount, currency): if currency == "JPY": # 将日元转换为美元,汇率为1美元=110日元 converted_amount = amount / 110 return converted_amount elif currency == "USD": # 将美元转换为日元,汇率为1美元=110日元 converted_amount = amount * 110 return converted_amount else: return "无效的货币种类" # 测试程序 print(convert_currency(1000, "JPY")) # 将1000日元转换为美元 print(convert_currency(10, "USD")) # 将10美元转换为日元 ``` 以上代码定义了一个`convert_currency`函数,根据传入的金额和货币种类进行转换。当货币种类为"JPY"时,将日元转换为美元;当货币种类为"USD"时,将美元转换为日元。转换的汇率设定为1美元=110日元。最后,通过调用`convert_currency`函数并传入测试数据进行测试。 运行上述代码,输出结果为: ``` 9.090909090909092 1100 ``` 其中,第一行输出的结果表示将1000日元转换为美元后的金额约为9.09美元;第二行输出的结果表示将10美元转换为日元后的金额为1100日元。 ### 回答3: 下面是一个使用Python编写的日元和美元币值转换程序的示例: ``` # 定义一个函数,将输入的日元金额转换为美元 def jpy_to_usd(jpy_amount): usd_amount = jpy_amount / 100 return usd_amount # 定义一个函数,将输入的美元金额转换为日元 def usd_to_jpy(usd_amount): jpy_amount = usd_amount * 100 return jpy_amount # 主程序 choice = int(input("请选择转换方向:1. 日元转美元 2. 美元转日元:")) if choice == 1: jpy_amount = float(input("请输入要转换的日元金额:")) usd_amount = jpy_to_usd(jpy_amount) print("{} 日元 = {} 美元".format(jpy_amount, usd_amount)) elif choice == 2: usd_amount = float(input("请输入要转换的美元金额:")) jpy_amount = usd_to_jpy(usd_amount) print("{} 美元 = {} 日元".format(usd_amount, jpy_amount)) else: print("输入无效,请选择1或2。") ``` 这个程序首先通过一个选择菜单让用户选择转换方向,然后根据用户的选择分别调用对应的函数进行金额转换,并输出转换结果。用户需要分别输入要转换的日元金额或美元金额,程序会根据用户的输入进行相应的转换计算,并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值