2017-08-01 48 views
-2

當我嘗試在C中實現「%」運算符而使用float輸入時發生。 我參加了cs50課程,這是我嘗試的問題集1中的第四個問題。以下錯誤消息是什麼意思「錯誤:無效的操作數到二進制表達式('double'和'double')」?

下面的代碼

#include <cs50.h> 
#include <stdio.h> 

int main(void) 
{ 
    printf("O hai! How much change is owed?\n"); 
    float x = get_float(); 
    if(x % 0.25 == 0) 
    { 
     printf("%.55f\n", x/0.25); 
    } 

    else if(x % 0.10 == 0) 
    { 
     printf("%.55f\n", x/0.10); 
    } 

    else if(x % 0.05 == 0) 
    { 
     printf("%.55f\n", x/0.05); 
    } 

    else if(x % 0.01 == 0) 
    { 
     printf("%.55f\n", x/0.01); 
    } 

} 
+0

我用FMOD代替%,但它給錯誤 「greedy.c:8:10:錯誤:預期 ')' 如果(X FMOD 0.25 == 0)」 ^ – ayushdubey

+0

使用'如果(FMOD(X, 0.25)== 0.0)' – vasek

回答

0

模運算符(%)返回該除法運算的餘,這是僅適用於整數(C等效數據類型int,短,長)。由於您試圖對非整數(浮點數)執行此操作,編譯器不允許您編譯該程序並引發錯誤。

+0

所以有另一種方式來獲得相同的結果,而使用浮動或雙重雙 – ayushdubey

相關問題