#7058: 帮忙看看哪错了


bdyz1016 (kaka蹦)


#include<iostream>
using namespace std;
void shun(int i);
void li(int m);
int main()
{
 int b[10];
 int a;
 while(cin>>a)
 {
    int m=0,i=0,j=0;
       while(a>0)
    {
     m=a%10;
     b[j]=m;
     j++;
     a=a/10;
     i++;
    }
    for(int p=j-1;p>=0;p--)
    {
     m=b[p];
     li(m);
     if(m==0&&i!=9&&i!=5)
     {
      if(b[p-1]!=0)
      {
       cout<<"零";
       i--;
      }
      else
       i--;
     }
     else
     {
      int g;
      if(g==8&&i==5)
       i--;
      else
      {
      shun(i-1);
      i--;
      }
               g=i;
     }
    }
    for(i;i<10;i++)
     b[i]=0;
    cout<<endl;
 }

 return 0;
}
void shun(int i)
{
 switch(i)
 {
 case 1:cout<<"拾";break;
 case 2:cout<<"佰";break;
 case 3:cout<<"仟";break;
 case 4:cout<<"萬";break;
 case 5:cout<<"拾";break;
 case 6:cout<<"佰";break;
 case 7:cout<<"仟";break;
 case 8:cout<<"億";break;
 case 9:cout<<"拾";break;
 }
}
void li(int m)
{
 switch(m)
 {
 case 1:cout<<"壹";break;
 case 2:cout<<"貳";break;
 case 3:cout<<"參";break;
 case 4:cout<<"肆";break;
 case 5:cout<<"伍";break;
 case 6:cout<<"陸";break;
 case 7:cout<<"柒";break;
 case 8:cout<<"捌";break;
 case 9:cout<<"玖";break;
 }
}

系统说 我的答案是壹拾零  正确答案是壹拾,在我电脑上运行是壹拾