الحد الأدنى من أرقام ODD من تسلسل بدون صفائف

0

أحاول الحصول على الحد الأقصى والأدنى من أرقام ODD من تسلسل المدخلات دون استخدام مصفوفة ، يرجى تقديم المشورة بشأن ما يجب أن أضيفه ، أنا أستخدم الرمز أدناه:

System.out.print("Enter odd integers(even to Stop): " );

do {
    num = input.nextInt();
    sum += num;
} while (num % 2 != 0);

if (num < min) {
    min = num;                
}
if (num > max) {
    max = num;
}

System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);

2 الاجابة

2
افضل جواب

يجب أن يكون منطقك للتحقق من القيمة الفردية ، لتسجيلها كحد أدنى أو حد أقصى ، داخل الحلقة:

int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;

int num = input.nextInt();

while (num % 2 != 0) {
    sum += num;

    if (num < min) {
        min = num;                
    }
    if (num > max) {
         max = num;
    }

    num = input.nextInt();
}

System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);

كتعليق ، أقوم بتهيئة min و max أعداد صحيحة لأكبر وأصغر قيم صحيحة ، على التوالي. وهذا يضمن أننا نلتقط المدخلات الأولى بشكل صحيح ، مهما كانت.

:مؤلف
-1
افضل جواب

هذا سيفي بالغرض. إذا لم تكن هناك أي أرقام فردية ، فقد يكون الحد الأدنى والحد الأقصى 0:

Scanner input = new Scanner(System.in);
int num = 0, sum = 0, max = 0, min = Integer.MAX_VALUE;
System.out.print("Enter odd integers(even to Stop): ");
do {
    num = input.nextInt();
    if (num < min) {
        min = num;
    }
    if (num > max) {
        max = num;
    }
    sum += num;
} while (num % 2 != 0);
if(min % 2 == 0) min = 0;
if(max % 2 == 0) max = 0;
System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);
input.close();
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام