이 코드를 사용하여 루트를 생성했습니다. 출력이 정수가 아니면 -1을 반환해야합니다.정수 및 부동 소수점 비교
#include <stdio.h>
#include <math.h>
int main(){
long int n=0;
long int num,p,reti;
double ret;
scanf("%ld",&n);
while(n!=0){
scanf("%ld %ld",&p,&num);
ret=pow(num,(double)1/p);
reti=(int)ret;
printf("%lf %lf\n",ret,(double)reti);
if(ret!=(double)reti){
reti=-1;
}
printf("%ld\n",reti);
n=n-1;
}
return 0;
}
그러나 나는 5
를 제공해야
1
5 3125
로 입력을 제공하지만 -1
을주는 경우.
코드 블록의 코드를 읽을 수 있도록 게시물을 다시 포맷하십시오. 즉, 각 코드 줄 앞에 공백을 추가하십시오! –
변수 이름을 이해할 수있게 유지하십시오! n, p, num은 무엇입니까? number, power와 같이 유지하지 마십시오. – minigeek
이전 printf 행은 무엇을 표시합니까? 나는 pow 함수가 5에 가까워 지지만 정확히 5.0000000000이 아닌 값을 반환한다고 생각합니다. (예 : 5.00000000001) 그러면 int (int)로 5를 얻고이 값을 double로 변환하면 5.0000000000! = 5.00000000001이됩니다. –