#2248: 為什會這樣呢? RE....真怪


nim2456 (冷月無華)


#include "stdio.h"
#include <iostream>
#include "string"
#include "math.h"
using namespace std;
int count_1(int x)                                
{
 int count=0;
 for(int i=10;i<=x;i*=10)
   if(x/i>=1)
    count++;
 return count;
}
int count_2(int c,int x)                         
{
 int temp=1;
 int y;
 for(int i=1;i<=c;i++)
  temp=temp*10;
 y=x/temp;
    return y;
}
int count_3(int x)
{
 for(int i=10;i<=x;i*=10)
 {
  if((x%i)==((x/10)%i))
   return 2;
  if((x/i)==0)
   return 1;
      return 1;
 }
}
int main()
{
 int x;
 while(cin>>x && x>=0 && x<=2147483647)
 {
  while(x>1)
  {
   int a=(count_1(x));
         int b=(count_2(a,x));
   if(count_3(x)>1)
    cout<<"零";
   if(a>=8)
    if(a>=8)
   {
         if(b==0)
         cout<<"零";
                  if(b==1)
         cout<<"壹";
         if(b==2)
         cout<<"貳";
         if(b==3)
         cout<<"参";
         if(b==4)
         cout<<"肆";
         if(b==5)
         cout<<"伍";
         if(b==6)
         cout<<"陸";
         if(b==7)
         cout<<"柒";
         if(b==8)
         cout<<"捌";
         if(b==9)
         cout<<"玖";
         if(a==11)
         cout<<"仟";
         if(a==10)
         cout<<"佰";
         if(a==9)
         cout<<"拾";
   }
   if(a==8)
    cout<<"億";
   
   if(a>=4)
   {
         if(b==0)
         cout<<"零";
                  if(b==1)
         cout<<"壹";
         if(b==2)
         cout<<"貳";
         if(b==3)
         cout<<"参";
         if(b==4)
         cout<<"肆";
         if(b==5)
         cout<<"伍";
         if(b==6)
         cout<<"陸";
         if(b==7)
         cout<<"柒";
         if(b==8)
         cout<<"捌";
         if(b==9)
         cout<<"玖";
         if(a==7)
         cout<<"仟";
         if(a==6)
         cout<<"佰";
         if(a==5)
         cout<<"拾";
   }
   if(a==4)
    cout<<"萬";
   if(a<=3)
   {
   if(b==0)
    cout<<"零";
            if(b==1)
    cout<<"壹";
   if(b==2)
    cout<<"貳";
   if(b==3)
    cout<<"参";
   if(b==4)
    cout<<"肆";
   if(b==5)
    cout<<"伍";
   if(b==6)
    cout<<"陸";
   if(b==7)
    cout<<"柒";
   if(b==8)
    cout<<"捌";
   if(b==9)
    cout<<"玖";
   if(a==1)
    cout<<"拾";
   if(a==2)
    cout<<"佰";
   if(a==3)
    cout<<"仟";
   if(a<=3 && b==0)
    cout<<"零";
   }
   int k=1;
   for(int i=1;i<=a;i++)
    k=k*10;
   x=x%k;                                                                          
 
  }
 }

  return 0;

}

 

 

以上是我的程式....

 我是新加入的...熊熊看到下列....下了我一大跳...

執行時發生錯誤 (SIGFPE)(8)!!
可能原因包含溢位或者除以0的問題
sh: line 1: 25884 浮點數出錯 

 

需要用到浮點數 0.0

 還是我的想法哪裡有錯嗎?  我是用VISUAL C++所以INCLUDE中某行會變成"STDAFX.H"

可是之前變換成這樣都不曾問題阿 = =

 實在是因為摸了這題目摸了好久     只好跑來問問前輩們....