程序设计综合训练——基本知识综合训练(二)

一、实验目的及要求

  1. 加强程序基本结构、数组、字符数组和指针数组的练习,掌握字符数组和字符串函数的使用。
  2. 要求:上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
  3. 进一步提高程序的设计能力和调试能力
  4. 掌握与数组有关的算法。

2.从键盘上接收一个多至9位整数、2位小数的数值,请将其转换成大写金额,即写成:

      ×亿×仟×佰×拾×万×仟×佰×拾×元×角×分

的形式。例如:当从键盘上输入  374910.56 时,输出结果为:

      ×亿×仟×佰叁拾柒万肆仟玖佰壹拾零元伍角陆分

或:             叁拾柒万肆仟玖佰壹拾零元伍角陆分

#include<stdio.h>

#include<string.h>

#include<math.h>

int main()

{

       char a[13];

       int j=-1, len, i, t;

       char *s[] = { "亿","仟","佰","拾","万","仟","佰","拾","元","角","分" };

       char *p[] = { "零","壹","贰","叁","肆","伍","陆","柒","捌","玖" };

       printf("请输入金额(最多至9位整数2位小数):\n");

       gets_s(a);

       len = strlen(a); //读取数组a的长度

       printf("大写金额为:\n");

              for (i = len - 1; i >= 0; i--)//检测是否存在小数点,因为要算小数点的位置所以要用减法

                     if (a[i] == '.')

                     {

                            j = i;

                            break;

                     }

              if (j==-1)

                     t = len;

              else     //有小数点  

                     t = j;

              //输出整数,1122.13 一千一百二十二 p1,s5...t=4

              for (i = 0; i < t; i++)

              {

                     printf("%s%s", p[a[i] - 48], s[9 - t + i]);

              }

              if (j != -1)//不是整数的情况,开始算小数

              {

                     if ((len - j) == 3)//本身长度与小数点位置差三,即小数点后有两位,1122.13 len=7,a[4]小数点

                     {

                            printf("%s角", p[a[++i] - 48]);//0的ASCII为48,转化为字符串形式

                            printf("%s分", p[a[++i] - 48]);

                     }

                     if ((len - j) == 2)

                            printf("%s角", p[a[++i] - 48]);

              }

              putchar('\n');

              return 0;

}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值