zoukankan      html  css  js  c++  java
  • 2019寒假作业2(币值转换)编程总结

    7-1 币值转换 (20 分)

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

    输入格式:

    输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

    输出格式:

    在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。

    输入样例1:

    813227345

    输出样例1:

    iYbQdBcScWhQdBeSf

    输入样例2:

    6900

    输出样例2:

    gQjB

    1).实验代码

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int i=-1,x,y,z,m,n,h,l,a;
    	char c='a';
    	scanf("%d",&x);
    	y=x;
    	if(x==0){
    		printf("a");
    	}
    	do{
    		x=x/10;
    		i++;
    	}while(x!=0);
    	do{
    		if(i>=4){
    		h=y/10000;
    		l=i-4;
    	}
    		if(i<4){
    		h=y;
    		l=i;
    		}
    		a=pow(10,l);
    		m=pow(10,i);
    		z=y/m;
    		if(z==0&&z!=n&&h%a!=0){
    			printf("a");
    		}
    		if(z!=0){
    		printf("%c",c+z);
    		if(i==8){
    			printf("Y");
    		}
    		if(i==7||i==3)
    			printf("Q");
    		if(i==6||i==2){
    			printf("B");
    		}
    		if(i==5||i==1){
    			printf("S");
    		}
    		if(i==4){
    			printf("W");
    		}
    	}
    	if(i==4&&z==0){
    		printf("W");
    	}
    	if(n==0&&i==3&&z==0){
    		printf("a");
    	}
    		y=y%m;
    		i--;
    		n=z;
    	}while(y!=0);
    	return 0;
     } 
    

    2).设计思路

    第一步:运用do-while循环将输入值反复除以10求出输入值的位数。
    第二步:利用公式结合do-while循环逐个求出输入值从左到右的数字并判断在每个数字后输出的符号。

    3)。本题调试过程碰到的问题以及解决办法

    碰到的问题:部分正确。
    解决办法:将while改为do-while,在第二个do-while中加入if(z!=0){printf("%c",c+z);。

    碰到的问题:部分正确。
    解决办法:在第二个do-while后面加入n=z以保存上一位的值,再将if(z!=0){改为if(z!=0&&在z!=n){。

    碰到的问题:部分正确。
    解决办法:在第二个do-while前面加入if(i>=4){
    h=y/10000;
    l=i-4;
    }
    if(i<4){
    h=y;
    l=i;
    }
    a=pow(10,l);判断当前数后面几位数是否都为0,再将if(z!=0&&在z!=n){改为if(z==0&&z!=n&&h%a!=0){。

    4).运行结果截图

  • 相关阅读:
    深入浅出单实例Singleton设计模式
    设计模式之监听器模式
    Android 驱动(二) IIC简单介绍
    用XCA(X Certificate and key management)可视化程序管理SSL 证书(3)--创建自己定义的凭证管理中心(Certificate Authority)
    编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上
    C++中的单例模式
    MessageDigest简单介绍
    白话经典算法系列之中的一个 冒泡排序的三种实现
    KNN算法理解
    TCP/IP数据包结构具体解释
  • 原文地址:https://www.cnblogs.com/hlywzj/p/10266447.html
Copyright © 2011-2022 走看看