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

توسط پژوهشگر در 198 روز قبل ساعت 04:39
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arash در 198 روز قبل ساعت 04:40

برای خواندن ورودی از std::getline استفاده کنید و به جای تقسیم دستی با پیمایش می‌توانید از std::istringstream یا std::stringstream برای توکن‌بندی بر اساس فاصله بهره ببرید تا کد خواناتر و ایمن‌تر شود. هنگام فراخوانی std::stof حتماً استثناهای std::invalid_argument و std::out_of_range را در بلوک try-catch بگیرید و توکن‌های نامعتبر را نادیده بگیرید یا پیام مناسب چاپ کنید و فقط از شمارش اعداد معتبر برای محاسبه میانگین استفاده کنید. همچنین توجه داشته باشید که std::stof دقت float را دارد و برای قالب‌های علمی یا دقت بالاتر ممکن است استفاده از std::stod یا strtof و تنظیم locale برای جداکننده‌های اعشاری مورد نیاز باشد.

گزارش

1 پاسخ

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

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