برنامه‌ای به زبان 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) استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:19
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 221 روز قبل ساعت 13:42

نکته مهم این است که قبل از انجام ++ روی مقدار ورودی باید بررسی کنید که مقدار فعلی کمتر از INT_MAX است تا از سرریز جلوگیری شود. برای این کار از INT_MAX و INT_MIN در هدر climits استفاده کنید. در محیط‌های Embedded می‌توانید مقدار ورودی را موقتاً به یک نوع بزرگ‌تر مانند long long نگه دارید و سپس نتیجه را به int بازگردانید تا رفتار تعریف‌نشده کاهش یابد. فراموش نکنید که در صورت نقض شرط، پیامی مناسب جهت کاربر چاپ کنید تا از سردرگمی جلوگیری شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری