یک برنامه C بنویسید که اعداد صحیح بزرگ را از آرگومانهای خط فرمان با استفاده از strtoll بخواند و مجموع، میانگین و انحراف معیار (جمعیتی) آنها را محاسبه و چاپ کند.
13.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 01:49 0.0
برای حل، در فایل C هدر stdlib.h را برای strtoll و errno.h را برای بررسی خطاها وارد کنید؛ برای هر آرگومان argv از i=1 تا argc-1 از strtoll با پارامتر endptr و بررسی errno==ERANGE یا اینکه endptr==argv[i] برای تشخیص ورودی نامعتبر استفاده کنید. مقادیر را در یک نوع شناور (double یا long double) جمع کنید، سپس میانگین را برابر مجموع تقسیم بر تعداد قرار دهید و انحراف معیار جمعیتی را با مجموع مربعات اختلافها محاسبه کنید. نکات: وقتی هیچ آرگومانی نیست پیغام راهنما چاپ شود و در صورت ورودی نامعتبر یا سرریز عددی خطا گزارش دهید—این روش در تحلیل عددی و پردازش دادههای بزرگ در محاسبات علمی و HPC مفید است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
قبل از فراخوانی strtoll برای هر آرگومان errno را به صفر تنظیم کنید و با بررسی endptr==argv[i] یا errno==ERANGE ورودی نامعتبر یا سرریز را گزارش کنید. مجموع و مجموع مربعات اختلافها را در long double یا با جمع Kahan انباشته کنید تا از از دست رفتن دقت و سرریز جلوگیری شود و برای محاسبه انحراف معیار جمعیتی از sqrt(sumsq/(n)) استفاده کنید. برای پایداری عددی بهتر به جای روش دوگذر ساده، الگوریتم Welford (یا یک الگوریتم آنلاین مشابه) را مدنظر قرار دهید تا از حذف قابلتوجه اعشار هنگام تفریق جلوگیری شود. اگر هیچ آرگومانی داده نشده یا خطا رخ داد پیغام راهنما چاپ کنید و با کد خروج غیرصفر خاتمه دهید.
گزارش