یک برنامهٔ C++ بنویسید که یک رشتهٔ شامل اعداد اعشاری جداشده با فاصله را از ورودی بخواند، با استفاده از std::stof هر عدد را به float تبدیل کند و مجموع و میانگین اعداد را چاپ کند.
17.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 04:39 0.0
برای حل این مسئله از هدر و توابع ورودی مانند std::getline استفاده کنید، سپس رشته را با پیمایش و جدا کردن بر اساس فاصله به توکنها تقسیم کرده و برای هر توکن std::stof را فراخوانی کنید تا float بهدست آید؛ در پایان مجموع و میانگین را محاسبه و با دقت مناسب چاپ کنید. بهتر است برای مواردی مانند قالب علمی (مثلاً "1.2e-3") یا ورودیهای نامعتبر از بلوک try-catch و گرفتن استثناهای std::invalid_argument و std::out_of_range استفاده کنید تا برنامه پایدار بماند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای خواندن ورودی از std::getline استفاده کنید و به جای تقسیم دستی با پیمایش میتوانید از std::istringstream یا std::stringstream برای توکنبندی بر اساس فاصله بهره ببرید تا کد خواناتر و ایمنتر شود. هنگام فراخوانی std::stof حتماً استثناهای std::invalid_argument و std::out_of_range را در بلوک try-catch بگیرید و توکنهای نامعتبر را نادیده بگیرید یا پیام مناسب چاپ کنید و فقط از شمارش اعداد معتبر برای محاسبه میانگین استفاده کنید. همچنین توجه داشته باشید که std::stof دقت float را دارد و برای قالبهای علمی یا دقت بالاتر ممکن است استفاده از std::stod یا strtof و تنظیم locale برای جداکنندههای اعشاری مورد نیاز باشد.
گزارش