আমি loops যখন ব্যবহার করে সর্বোচ্চ এবং সর্বনিম্ন মান নির্ধারণ করবেন না

আমি বর্তমানে আমার হোমওয়ার্কে আটকে আছি এবং সমস্যা হল যে আমাকে এমন একটি প্রোগ্রাম তৈরি করতে হবে যা 5 পূর্ণসংখ্যা নম্বরের জন্য জিজ্ঞাসা করবে এবং আমাকে সর্বোচ্চ এবং সর্বনিম্ন মান নির্ধারণ করতে হবে। আমি এখন হিসাবে বেশ বিভ্রান্ত, এবং আমার প্রাথমিক কোড এই।

#include
using namespace std;

int main(){

 int num1,num2,num3,num4,num5,min=0,max=0;

 cout << " Enter 1st number : ";
 cin >> num1;
 cout << " Enter 2nd number : ";
 cin >> num2;
 cout << " Enter 3rd number : ";
 cin >> num3;
 cout << " Enter 4th number : ";
 cin >> num4;
 cout << " Enter 5th number : ";
 cin >> num5;
 do{
    if(num10);
 cout << " The highest number is : " <

কোন সাহায্য প্রশংসা করা হবে। আগাম ধন্যবাদ!

3
std :: max দেখুন, আপনার নিয়োগ অনুমিত এটা অনুমতি দেয়।
যোগ লেখক Cornstalks, উৎস
আপনি একটি অ্যারে কি জানেন?
যোগ লেখক NathanOliver, উৎস
অ্যারে, বা ভেক্টর হিসাবে তারা c ++ বলা হয়, এই কাজটি অনেক সহজ করে তুলুন। আপনি এই এখানে জন্য একটি টিউটোরিয়াল দেখতে পারেন। আমি নিশ্চিত যে আপনি যদি সহজ সমাধান নিয়ে এসে থাকেন তবে অধ্যাপক মনে করবেন না।
যোগ লেখক K1ngjulien_, উৎস
@ নাথানওলিভার @ আমার প্রফেসর আমাদের কেবল তখনই ব্যবহার করতে বলেন এবং যদি আমরা এখনও অ্যারে না থাকি
যোগ লেখক james, উৎস

6 উত্তর

যদি আপনার std :: max এবং std :: min ব্যবহার করার অনুমতি দেওয়া হয়, আপনি ব্যবহার করতে পারেন:

max = std::max({num1, num2, num3, num4, num5});
min = std::min({num1, num2, num3, num4, num5});

লুপ কোড সরলীকৃত করা।

1
যোগ

বরং সব সময় সব সংখ্যার তুলনা করুন। কেবল ক্রম সংখ্যার বিরুদ্ধে আপনার বর্তমান ক্ষুদ্রতম তুলনা করুন।

int data[5];
// read numbers into data.

int min = data[0];  //Guess that number 0 is the smallst number.

// Now check if the guess is correct and update if you are wrong.
for(int loop = 0; loop < 5; ++loop)
{
    //check if data[loop] is smaller than your current guess.
    //if it is smaller than update your guess.
    //when you have checked all the values exit the loop.
}
std::cout << "Smallest: " << min << "\n";
0
যোগ

You should store your numbers into a std::vector or std::array and then use the std::minmax_element algorithm to obtain the largest and smallest number.

0
যোগ

লুপটি ব্যবহার করার জন্য কোনও প্রয়োজন নেই যা আপনি এটি করতে পারেন না যদি এটি লুপ ব্যবহার করার প্রয়োজন হয় তবে আপনাকে অবশ্যই একটি অ্যারে বা অন্য কোনও তথ্য কাঠামো ব্যবহার করতে হবে।

0
যোগ

এই অ্যারে ব্যবহার ছাড়া আমার সমাধান হবে। আমি আপনাকে আগে নিজেকে চেষ্টা করার পরামর্শ দিতে চাই। আপনি কোড কপি যখন আপনি শিখতে না।

#include 

int main() {
    int i=0, num, min=FP_INFINITE, max=-FP_INFINITE;

    do {
        std::cout << "Enter number: ";
        std::cin >> num;
        if (num < min) {
            min = num;
        }
        if (num > max) {
            max = num;
        }
        i++;
    } while (i < 5);

        std::cout << "The max number is: " << max << std::endl;
        std::cout << "The min number is: " << min << std::endl;

    return 0;
}
0
যোগ
এটি {- 1, -2, -3} এর জন্য ভুল সর্বোচ্চ দিতে হবে
যোগ লেখক NathanOliver, উৎস
কেন মান হিসাবে INT_MIN এবং INT_MAX নয়। আমি মনে করি না FP_INFINITE আপনাকে সঠিক মান দেবে।
যোগ লেখক NathanOliver, উৎস
আমি তার মান এখানে এর জন্য 1 পেতে পারি তাই এটি একটি পোর্টেবল সমাধান নয়।
যোগ লেখক NathanOliver, উৎস
@ নাথানওলিভার আপনাকে ধন্যবাদ। শুধু 0 থেকে -FP_INFINITE intally 0 থেকে সর্বোচ্চ পরিবর্তন। এখন এটা কাজ করা উচিত
যোগ লেখক Uli Sotschok, উৎস
আমি উভয় পরীক্ষা করেছি (FP_INFINITE এবং INT_MAX/INT_MIN) এবং আমার জন্য, উভয়ই ঠিক কাজ করেছে। কিন্তু আমি সি ++ তে খুব নতুন নই, তাই আমি জানি না কোনটি ভাল ফিট করে
যোগ লেখক Uli Sotschok, উৎস

আপনি যদি মনে রাখতে না চান, উদাহরণস্বরূপ আপনি লুপ করতে পারেন 5 বার, তারপর পরবর্তী সংখ্যা জিজ্ঞাসা করার আগে একটি তুলনা আছে।

তাই সাধারণত (ধারণা, নিজেকে লিখুন এবং শিখুন):

for (5 times)
ask user input, save as input
if largest number is null, then equal to input
else if largest number is smaller, then set input equal to largest number

লুপ বার জন্য অবিরত।

0
যোগ
সর্বাধিক সংখ্যক সংখ্যার নিল সংশোধন করার পরিবর্তে আপনার প্রথম পুনরাবৃত্তি হওয়া উচিত কিনা তা যাচাই করা উচিত। যদি এটি প্রথম সংখ্যাটি প্রবেশ করা হয় তবে এটি সর্ববৃহৎ সংখ্যা, অন্যথায় বৃহত্তম সংখ্যাতে প্রবেশ করা নম্বরটি তুলনা করুন। পাশাপাশি এটি একটি মহান উত্তর। এটা আসলে সবচেয়ে দক্ষতার সমস্যা সমাধান।
যোগ লেখক NathanOliver, উৎস
সর্বাধিক সংখ্যক প্রাথমিক মান দেওয়ার সাথে সমস্যাটি যদি ব্যবহারকারীর চেয়ে কম সংখ্যক সংখ্যায় প্রবেশ করে তবে আপনি তাদের ভুল নম্বর দিন। যদি আপনি এটি "নাল" (0) এ সেট করেন এবং আমি -1, -2, -3 লিখুন তবে আমি 0 টি সর্বোচ্চ এবং না -1 হিসাবে পেতে পারি। সুতরাং আপনি যদি এটি প্রথম পুনরাবৃত্তি হয় কিনা তা পরীক্ষা করতে হবে, লুপের আগে প্রথম সংখ্যাটি জিজ্ঞাসা করুন এবং তারপরে কেবল 4 বার লুপ করুন, বা বৃহত্তম সংখ্যাটিকে সর্বাধিক সেট করতে সেট করুন।
যোগ লেখক NathanOliver, উৎস
আমি সাধারণত এটি 0/প্রথম পুনরাবৃত্তি পরীক্ষা করতে এড়াতে চেষ্টা করি, কারণ আপনি এটি করতে চাইতে পারেন যাতে আপনি পূর্বে একটি বড় সংখ্যা সেট করেন তবে এই ক্ষেত্রে এটি ঘটছে না, তাই উভয়ই সঠিক।/অসহায়তা
যোগ লেখক Marco, উৎস
না, এর দ্বারা আমি কী বলতে চাই তা হল যদি আপনি পূর্বে এটি সংরক্ষণ করেন, যেমন। আপনি কিছু স্টোরেজ বা পূর্বে প্রবেশ করা নম্বর থেকে এটি নিতে, আপনি নতুন সংখ্যা পেতে এবং পুরোনো তুলনা করতে পারেন। আমি ফিরে আসি এবং ফিচারগুলি যোগ করি তবেই এটি তৈরি করে, আমি পুরানো স্টাফ সম্পাদনা সম্পর্কে চিন্তা করতে হবে না। আমি এটা দিয়ে শুরু একটি মান দিতে মানে না। উপরের কাজ করার আরেকটি উপায় হলো লুপ প্রবেশ করার আগে প্রথম সংখ্যাটি জিজ্ঞাসা করা, যাতে খালি চেক এড়ানো যায়।
যোগ লেখক Marco, উৎস