簡體   English   中英

浮點異常C.為什么?

[英]Floating point exception C. Why?

我在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;
}

所以,為什么這個,請幫助我!

由於kassza[max] / (ossz / 100)ossz < 100代碼導致零ossz < 100

在那種情況下,由於整數除法, ossz/100 - > 0然后kassza[max] / 0除以零。

整數除以0通常(錯誤地)報告為浮點異常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM