2018秋季寒假作业5-币值转换

1)代码截图

#include<stdio.h>
#include<math.h>
int n,m=0;
int main(void)

{
    int i,j,k,r,s;
    r=1,s=1;
 
    int f(int q,int n);
 
    scanf("%d",&n);
 
    for(i=0;n/r>=10;i++)
   {
     r=pow(10,i);
     m++;
   }
        if(n==0) 
          {
           printf("a");
          }
        if(n<10 && n>=0)
          {
           m=1;
          }
        for(j=1;j<=m;j++)
          {
      switch(f(j,n))
       {
         case 0:
         if(j!=m && j!=m-4)
           {
            if(f(j+1,n)==0)
             {
              s=0;
             }
            else
             {
              s=1;
             }
            if(s!=0)
             {
              printf("a");
              }
        break;
    }
    break;
           case 1:
           printf("b");
           break;
           case 2:
           printf("c");
           break;
           case 3:
           printf("d");
           break;
           case 4:
           printf("e");
           break;
           case 5:
           printf("f");
           break;
           case 6:
           printf("g");
           break;
           case 7:
           printf("h");
           break;
           case 8:
           printf("i");
           break;
           case 9:
           printf("j");
           break;
       }
        if(f(j,n)==0 && j!=m && j!=m-4) 
  
         continue;
  
        else 
        {
          if(m==9 && j==5)
           {
              if(f(2,n)==0 && f(3,n)==0 && f(4,n)==0 && f(5,n)==0)
    
              continue;
           }
        switch(m-j)
       {
          case 1:
          printf("S");
          break;
          case 2:
          printf("B");
          break;
          case 3:
          printf("Q");
          break;
          case 4:
          printf("W");
          break;
          case 5:
          printf("S");
          break;
          case 6:
          printf("B");
          break;
          case 7:
          printf("Q");
          break;
          case 8:
          printf("Y");
          break;
      }
      }   
         } 
        return 0;
}
int f(int q,int n)
{
 int k,a;
 if(q==1) k=n/pow(10,m-1);
 else
 {
  a=n/pow(10,m-q+1);
  k=n/pow(10,m-q)-a*10;
 }
 return k;
}

2)设计思路

这题借鉴了李代传同学的流程图,经过思考决定首先定义变量用来储存数据,其次要注意的是必须采用整形数据输入,然后将其分成亿,万,千及以下三个部分考虑。假如·万位第一位为0,则这个0不输出,利用除余的·方放将此依次输出

3)本题调试过程中遇到的问题及解决方案

问题一:那几个测试点老是答案错误

问题一的解决方案:经过调试,我发现r,s的初始值赋值错误了,后来发现if语句的条件少写了一个。太粗心了,调试了好久

4)运行结果截图

posted @ 2019-02-19 09:50  ღ阿ོ茶꧔ꦿ༊  阅读(155)  评论(0编辑  收藏  举报