要發佈整個代碼,所以如果有別的東西可以幫助我。 該方案的想法是要知道,如果插入的數字是5的倍數,10的權力或完美的廣場(我不是英語,有點不確定這個詞是我正在尋找的)。是否可以使用%和double?如果不是我能做什麼?
int main (void){
int i,b=0,rqi;
printf("Insert a number from 1 to 10000: ");
scanf("%d",i);
double rq=sqrt(i),p=log(i);
if(i%5==0){
printf("It's a multiple of 5\n");
b=1;
}
if(p%1==0){
int pi=p;
printf("It's a power of 10 (%d=10^%d)\n",i,pi);
b=1;
}
if(rq%1.0==0){
rqi=rq;
printf("It's a perfect square (%d = %d*%d)\n",i,rqi,rqi);
}
if(b==0){
printf("It doesn't satisfies any condition.\n");
}
return 0;
}
我得到的錯誤是
warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%d",i);
^
error: invalid operands to binary % (have ‘double’ and ‘int’)
if(p%1==0)
^
invalid operands to binary % (have ‘double’ and ‘double’)
if(rq%1.0==0)
而且,我學到了位的Java,而不是C,有沒有一種方法,使一個布爾值或者使一個int 0或1的去哪裏?這樣int
.WRITE的
爲什麼downvote?請讓我知道原因。 – ameyCU
得到使用,奇怪的事情發生在這裏:)。 – Michi