কম্পিউটার টিউটোরিয়াল

C++-এ ম্যাক্রো ফাংশন ব্যবহার করে অ্যারেতে সর্বোচ্চ ও সর্বনিম্ন মান নির্ণয়


ধরা যাক একটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে যাতে কিছু মান রয়েছে। আমাদের অ্যারেতে সর্বোচ্চ ও সর্বনিম্ন মানের পার্থক্য বের করতে হবে। এই সমস্যাটি ম্যাক্রো ব্যবহার করে সমাধান করতে হবে। ইনপুট stdin থেকে নেওয়া হবে এবং রেজাল্ট stdout-এ প্রিন্ট করা হবে।

উদাহরণস্বরূপ, array = {120, 589, 324, 221, 234} হলে আউটপুট হবে "The answer is : 469"। কারণ সর্বোচ্চ ৫৮৯ এবং সর্বনিম্ন ১২০, পার্থক্য ৪৬৯।

সমাধানের ধাপসমূহ

  • mini := infinity, maxi := negative infinity
  • প্রতিটি উপাদান v[i] এর জন্য:
    • যদি mini > v[i] হয়, তবে mini := v[i]
    • যদি maxi < v[i] হয়, তবে maxi := v[i]
  • ans := maxi - mini
  • ans প্রিন্ট করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন:

#define minmac(a, b) a = min(a, b) #define maxmac(a, b) a = max(a, b) #define INF ((1 << 31)-2) #define input(a) cin >> a #define toStr(a) string("The answer is :") #define FOO(a, b) #define foreach(a, b) for (int i = 0; i < a.size(); ++i) #include <iostream> #include <vector> using namespace std; FOO(minmac, <) FOO(maxmac, >) int main(){    int n; cin >> n;    vector<int> v(n);    foreach(v, i) {       input(v)[i];    }    int mini = INF;    int maxi = -INF;    foreach(v, i) {       minmac(mini, v[i]);       maxmac(maxi, v[i]);    }    int ans = maxi - mini;    cout << toStr(The answer is :) <<' '<< ans;    return 0; }

ইনপুট

5 120 589 324 221 234

আউটপুট

The answer is : 469

  1. C++-এ log() ফাংশন

  2. C++ প্রোগ্রাম: নাওর-রেইনহোল্ড সুডো র‍্যান্ডম ফাংশন বাস্তবায়ন

  3. C++-এ swap() ফাংশন

  4. ফাংশন তৈরি করে প্রাইম নম্বর চেক করার C++ প্রোগ্রাম