小编vil*_*oob的帖子

计算GCD时的浮点异常(核心转储)

我正在编写一个程序,将分数降低到最低项.这是我的计划:

#include <stdio.h>
int main(){
    int m,x,n,gcd;
    printf("Enter a fraction: ");
    scanf("%d/%d",&n,&m);

    if(m==0)printf("Error");
    else
        for(;;){
           x=m%n;
           if(x==0){
              gcd=n;
              m/=gcd;
              n/=gcd;
              printf("In lowest terms: %d/%d",n,m);
            }else
                m=n;
                n=x;
         }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我使用Euclid的算法来计算GCD.执行时,它会报告

浮点异常(核心转储)

我的代码出了什么问题?

c floating-point coredump

3
推荐指数
1
解决办法
289
查看次数

标签 统计

c ×1

coredump ×1

floating-point ×1