Tôi đang cố gắng thực thi mã sau đây là mục nhập năm 1988 của Cuộc thi mã C bị bẻ khóa.Làm thế nào để chuyển đổi từ K & R C tới ANSI C?
#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}
Từ mô tả mục nhập, mã này đang tính toán pi bằng cách xem khu vực của riêng nó. Tôi đã biên dịch thành công nó mà không thay đổi mã. Nhưng khi tôi thực hiện, nó mang lại cho tôi một giá trị 0,25, những gì tôi mong đợi là 3,14. Mã mô tả nói rằng nó là trong K & R C và nó không hoạt động chính xác trong ANSI C mà không có một số thay đổi. Tôi nghĩ tôi phải thực hiện những sửa đổi đó để thực thi nó đúng cách. Tôi không có bất kỳ kinh nghiệm trước đó với K & R C. Vì vậy, ai đó có thể giúp tôi thay đổi mã trên để ANSI C hoặc điểm đến các vấn đề nếu có. Tôi đang sử dụng Microsoft Visual Studio 2008 để thực hiện điều này.
Đối với tình yêu của $ thần, tại sao? Tôi không thể thấy điều này là hữu ích nhất. Các cuộc thi obfuscated là tốt như một cách để hiển thị như thế nào "thông minh" bạn có thể được, nhưng họ thực sự có ít liên quan trong thế giới thực. Lời khuyên của tôi, tìm một vấn đề thực sự và giải quyết nó. – paxdiablo
@Pax: + Inf cho $ DEITY :) – Jacob
@Pax: -Inf cho báng bổ vô hạn :) – DVK