簡體   English   中英

錯誤:二進制 % 的操作數無效(有“int”和“double”)

[英]error: invalid operands to binary % (have 'int' and 'double')

這是問題

編寫一個程序來確定一個數字是否為 kaprekar。 考慮一個 n 位數字 k。 將其平方並將右側的 n 位數字添加到左側的 n 或 n-1 位數字中。 如果結果和為 k,則 k 稱為 Kaprekar 數。 例如,9 是一個 Kaprekar 數,因為

9^2=81 和 8+1=9

297 是一個 Kaprekar 數,因為

297^2=88209 和 88+209=297這是我寫的代碼

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

int main(){
    int k,num,j=0,rev,act,s,rem;

    while(num!=0){
        num=k/(pow(10,j));
        if(num==0){
            rev=j;
        }
        else{
            j=j+1;
        }
    }
    rem=num%(pow(10,(j/2)));
    act=num/(pow(10,(j/2)));
    s=rem+act;
    if(s=num){
        printf("This is a Kaprekar number: ");
    }
    else{
        printf("This isnt a Kaprekar number: ");
    }
}

顯示的錯誤是:

Karpekar.c: In function 'main':
Karpekar.c:16:12: error: invalid operands to binary % (have 'int' and 'double')
     rem=num%(pow(10,(j/2)));
            ^~~~~~~~~~~~~~~~
PS C:\Users\shaun\OneDrive\Desktop\c programming\programs>

有人請幫忙

%運算符被明確定義為返回 integer 余數,因此您不能將它與浮點操作數一起使用。 pow()返回double

您要么必須將該結果轉換為 integer 類型,要么使用fmod()來獲取浮點余數。

暫無
暫無

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

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