یک برنامه به زبان C++ بنویسید که یک رشته‌ی نویسه‌ای گسترده (std::wstring) شامل اعداد جداشده با فاصله را از ورودی خوانده، با استفاده از توابع موجود در هدر <cwchar> هر عدد را به double تبدیل کند و میانگین اعداد را محاسبه و چاپ نماید.

1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:54

0.0

برای حل این مسئله از std::wstring و توابع هدر <cwchar> مانند wcstok یا wcstod استفاده کنید: ابتدا با std::getline(std::wcin, wstr) رشته را بخوانید، سپس با استفاده از wstr.c_str() و تابع wcstok رشته را به توکن‌های جداشده تقسیم کنید یا با wcstod و یک اشاره‌گر (endptr) به‌صورت تکراری اعداد را استخراج کنید. برای نمایش و خواندن نویسه‌های گسترده از std::wcout و std::wcin استفاده کنید و در صورت نیاز locale را با setlocale(LC_ALL, "") تنظیم کنید تا پشتیبانی از نویسه‌های محلی بهتر انجام شود؛ از چک‌کردن خطا در تبدیل‌ها (مثلاً بررسی اینکه endptr تغییری کرده باشد) برای جلوگیری از حلقهٔ نامتناهی استفاده کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:54
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 220 روز قبل ساعت 11:38

برای جلوگیری از حلقهٔ بی‌پایان حتماً endptr را بررسی کنید تا مطمئن شوید wcstod در هر گام مقداری استخراج کرده و مقدار جدیدی نسبت به قبل دارد. همچنین با setlocale(LC_ALL, "") یا استفاده از std::locale، پشتیبانی از نویسه‌های محلی در std::wcin/std::wcout تقویت می‌شود. وقتی از wcstok با فهرست توکن‌ها استفاده می‌کنید، مطمئن شوید که توکن‌ها واقعاً عددی هستند و در صورت عدم تغییر endptr از حلقه خارج شوید. در نهایت اگر هیچ عددی وجود ندارد، از تقسیم بر صفر پرهیز کرده و با پیغام مناسب نتیجه را چاپ کنید.

گزارش

1 پاسخ

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

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