2014-06-25 62 views
-2

這是錯誤的終端給出:終端爲什麼說「無效的操作數爲二進制表達式」? ç

greedy.c:26:21: error: invalid operands to binary expression 
     ('float' and 'float') 
     float x = x % q; 
        ~^~ 
1 error generated. 

從下面的代碼:

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

int main(void) 
{ 
    float x; 
    float y = 0; 
    float q = 25.0; 
    float d = 10.0; 
    float n = 5.0; 
    float p = 1.0; 

    printf("How much I owe you? Enter here: "); 

    x = GetFloat(); 

    while (x <= 0) 
    { 
     printf("Please enter the sum with a decimal point (e.g. .50; 1.37): "); 
     x = GetFloat(); 
    } 

    if (x > 25.0) 
    { 
     float x = x % q; 
     y++; 
    } 

    printf("The modulo of %f and the coins used: %f\n", x, y); 

} 

我認爲你與CS50「貪婪」的任務熟悉。我需要得到x的剩餘部分。也許我錯過了教程中的某些內容,但我認爲他們沒有指定如何使用模運算符%

+1

我不認爲'%'模運算符對'float'有效。你可能想看看'fmod()'。 –

回答

3

模運算符只能用於整數類型。你想使用fmodf函數。

相關問題