[英]error: invalid operands to binary % (have 'double' and '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.