Chào các bạn, mình là newbie tìm hiểu lập trình C. Mình có thắc mắc muốn hỏi các sư phụ về bài tính bình phương:
#include <stido.h>
void main()
{
int a, square;
printf("\nNhap vao so nguyen: ");
scanf("%d",&a);
square = a*a;
printf("\nGia tri binh phuong: %d",square);
return 0;
}
Vấn đề là khi mình nhập a = 32767 thì square vẫn tính ra giá trị đúng. Tuy nhiên theo mình được biết thì kiểu int chỉ từ -32768 đến 32767, mà ở đây square vượt ra ngoài phạm vi đó. Thậm chí mình nhập a = 32768 thì kết quả vẫn ra đúng. Mình xài CodeBlocks. Có bạn nào biết giải thích hộ mình với! Thanks!
Đúng là còn có nhiều thứ mình phải tìm hiểu thiệt.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?