01/10/2018, 08:53
Cùng một bài Dev-C++ chạy báo sai còn Codeblock chạy đúng?
Cùng một code tìm số chính phương này nhưng Dev-C++ chạy báo sai còn dùng Codeblocks chạy đúng. Em ngồi check lại thấy đúng là code này sai chỗ sqrt nhưng tại sao Codeblocks vẫn chạy đúng vậy ạ @@ Em c.ơn ạ.
#include <stdio.h>
#include <math.h>
int isSquare(int);
int main(void){
int a,b,i;
printf("Nhap khoang a b: ");
scanf("%d %d",&a,&b);
printf("Cac so chinh phuong trong khoang [%d,%d]: ",a,b);
for(i=a;i<=b;i++)
if(isSquare(i))
printf("%d ",i);
}
int isSquare(int n){
if(n==sqrt(n)*sqrt(n))
return 1;
else
return 0;
}
Bài liên quan
Bạn thử sửa lại thành
n==(int)(sqrt(n)*sqrt(n))
rồi chạy thử trên Codeblocks xem kết quả đúng khôngVì tính toán số thực đấy.
Có thể tránh bằng cách if ((x = sqrt(n), x*x) == n); Sợ nó tính “xêm xêm” kiểu sqrt(225.0) ?= 14.998… gì thôi.
Mình thấy và mình đã ép kiểu như vậy r. Vẫn đúng mà không ép kiểu vẫn chạy đúng =.=
Mình cũng không hiểu tại sao nó lại như vậy. Dùng codeblocks thích hơn devC nhưng mà cái kiểu code sai vẫn đúng này thì… bó tay r
chạy đúng là sao? @_@ ví dụ nhập vào 100 130 nó in ra 100 với 121 thôi à?
Nó in ra 100 và 121 chứ. nghĩa là nó tìm đúng số chính phương ý bạn
CB chạy ra 100 121 với code trên còn Dev-C++ ra số khác à? Làm gì có chuyện đó, cả 2 đều chạy sai chứ @_@