JINGZMR 2022-10-05 16:57 采纳率: 63.6%
浏览 44
已结题

有关pat浮点错误的问题

pat显示浮点错误,但我未检查出,烦请各位指教

#include<stdio.h>
int main()
{
    int number,n,i,m;
    scanf("%d",&number);
    if(number<0)n=-number;
    else n=number;
    m=n;
    for(i=1;n>9;i*=10){
        n/=10;
    }
    if(number<0)
            printf("fu ");
    int count;    
    for(;m>=0;i/=10){
        count=m/i;
        switch(count){
        case 0: printf("ling");break;
        case 1: printf("yi");break;
        case 2: printf("er");break;
        case 3: printf("san");break;
        case 4: printf("si");break;
        case 5: printf("wu");break;
        case 6: printf("liu");break;
        case 7: printf("qi");break;
        case 8: printf("ba");break;
        case 9: printf("jiu");break;
        }
        if(m>9)
        printf(" ");
        m%=i;
    }    
}


  • 写回答

2条回答 默认 最新

  • 叶落花枯 2022-10-05 17:48
    关注

    15行的 i /= 10 有可能出现 i = 0 的情况,然后16行的 count = m / i 就会出错,除数为0会抛出浮点数例外的错误。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 10月5日