برنامهای به زبان C Plus Plus بنویسید که یک عدد صحیح 32 بیتی را از ورودی بگیرد و با استفاده از هدر climits (include <climits>) قبل از افزودن 1 بررسی کند که آیا انجام این عمل باعث سرریز (overflow) میشود یا خیر و در صورت سرریز پیام مناسب نمایش دهد.
3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:19 0.0
برای حل این مسأله در C Plus Plus از ثابتهای INT_MAX و INT_MIN از هدر <climits> استفاده کنید؛ قبل از انجام عمل ++ بررسی کنید که مقدار فعلی کمتر از INT_MAX باشد تا از رفتار تعریفنشده جلوگیری شود و در غیر این صورت پیام خطا چاپ کنید. در محیطهای Systems/Embedded این چکها برای جلوگیری از کرش یا رفتار غیرمنتظره حیاتیاند — روی مقادیر لبهای (مثل INT_MAX و INT_MIN) تست کنید و در صورت نیاز برای نگهداری موقت نتیجه از نوع بزرگتر (مثلاً long long) استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مهم این است که قبل از انجام ++ روی مقدار ورودی باید بررسی کنید که مقدار فعلی کمتر از INT_MAX است تا از سرریز جلوگیری شود. برای این کار از INT_MAX و INT_MIN در هدر climits استفاده کنید. در محیطهای Embedded میتوانید مقدار ورودی را موقتاً به یک نوع بزرگتر مانند long long نگه دارید و سپس نتیجه را به int بازگردانید تا رفتار تعریفنشده کاهش یابد. فراموش نکنید که در صورت نقض شرط، پیامی مناسب جهت کاربر چاپ کنید تا از سردرگمی جلوگیری شود.
گزارش