浮点异常C.为什么?

时间:2019-03-27 20:02:11

标签: c floating-point

我用C语言编写了一个简单的有关收银机流量的代码,但是我总是收到“浮点异常”。我知道,它发生在溢出并被零除的情况下,但是我认为在这种情况下,这些都不包含。这是代码:

#include <stdio.h>
#include <stdlib.h>

int main(void) 
{
    int kassza[32] = {0};
    int a;
    int ossz = 0;

    scanf("%d", &a);
    printf("meg ok");

    while (a != 0) 
    {
        kassza[a - 1]++;
        ossz++;
        scanf("%d", &a);
    }

    int max = 0;
    for (int a = 1; a < 32; a++)
    {
        if (kassza[a] > kassza[max]) 
        {
            max = a;
        }
    }
    printf("%d. kassza: %d %%-a az osszes vevonek\n", max + 1, kassza[max], kassza[max] / (ossz / 100));
    return 0;
}

所以idk为什么会这样,请帮助我!

1 个答案:

答案 0 :(得分:0)

由于kassza[max] / (ossz / 100)ossz < 100,代码导致被零除。

在这种情况下,ossz/100->由于整数除法而为0,然后kassza[max] / 0被零除。

整数除以0通常被报告为浮点异常