Loading...
vipora1992 avatar vipora1992 0 Точки

Проблем с форматирането на изхода на задача Odd/Even positon

В изхода трябва да се изкара веднъж цяло, а друг път дробно число. По отделно ги форматирам, но двете заедно незнам как да се направи.

По долу е кода:

package forLoops;
import java.util.Scanner;

import static java.lang.Math.*;

public class OddEvenPosition {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());
        double oddMax = Integer.MIN_VALUE;
        double oddMin = Integer.MAX_VALUE;
        double evenMax = Integer.MIN_VALUE;
        double evenMin = Integer.MAX_VALUE;
        double oddSum =0;
        double evenSum =0;

        for (int i = 1; i <= n ; i++) {
           double num = Double.parseDouble(scanner.nextLine());
            //leftSum += Integer.parseInt(scanner.nextLine());

            if (i % 2 != 0) {
                oddSum += num;
                if (num > oddMax) {
                    oddMax = num;
                }

                if (num < oddMin) {
                    oddMin = num;
                }

            } else {
                evenSum += num;
                if (num > evenMax) {
                    evenMax = num;
                }

                if (num < evenMin) {
                    evenMin = num;
                }
            }
        }

        if (n == 0) {
            System.out.printf("OddSum=%.0f,%nOddMin=No,%nOddMax=No,%nEvenSum=%.0f,%nEvenMin=No,%nEvenMax=No",oddSum, evenSum);
        } else if (n <=1){
            System.out.printf("OddSum=%.0f,%nOddMin=%.0f,%nOddMax=%.0f,%nEvenSum=%.0f,%nEvenMin=No,%nEvenMax=No",oddSum, oddMin, oddMax, evenSum);
          }else{
            System.out.printf("OddSum=%.0f,%n", oddSum);
            System.out.printf("OddMin=%.0f,%n", oddMin);
            System.out.printf("OddMax=%.0f,%n", oddMax);
            System.out.printf("EvenSum=%.0f,%n", evenSum);
            System.out.printf("EvenMin=%.0f,%n", evenMin);
            System.out.printf("EvenMax=%.0f%n", evenMax);
        }
    }
}
Тагове:
0
Programming Basics with Java
Evuns avatar Evuns 34 Точки

Здравей, става със създаване на "pattern" - Decimal Format. Не са го обяснявали в лекция. можеш да се поровиш из нета или да погледнеш записа на упражнението. Там показват как става.

import java.text.DecimalFormat;
import java.util.Scanner;

public class OddEvenPosition {
    public static void main(String[] args) {
        DecimalFormat df = new DecimalFormat("#.##");
        Scanner scanner = new Scanner(System.in);

        int n = Integer.parseInt(scanner.nextLine());
        double evenMin = Integer.MAX_VALUE;
        double evenMax = Integer.MIN_VALUE;
        double evenSum = 0;
        double oddMin = Integer.MAX_VALUE;
        double oddMax = Integer.MIN_VALUE;
        double oddSum = 0;

        for (int i = 1; i <= n; i++) {
            double num = Double.parseDouble(scanner.nextLine());

            if (i % 2 == 0) {
                if (num < evenMin) {
                    evenMin = num;
                }
                if (num > evenMax) {
                    evenMax = num;
                }
                evenSum += num;
            } else {
                if (num < oddMin) {
                    oddMin = num;
                }
                if (num > oddMax) {
                    oddMax = num;
                }
                oddSum += num;
            }
        }
        System.out.printf("OddSum = %s,\n", df.format(oddSum));
        if (Integer.MAX_VALUE == oddMin){
            System.out.println("OddMin = No,");
        } else {
            System.out.printf("OddMin = %s,\n", df.format(oddMin));
        }if (Integer.MIN_VALUE == oddMax){
            System.out.println("OddMax = No,");
        } else {
            System.out.printf("OddMax = %s,\n",df.format( oddMax));
        }
        System.out.printf("EvenSum = %s,\n", df.format(evenSum));
        if (Integer.MAX_VALUE == evenMin){
            System.out.println("EvenMin = No,");
        } else {
            System.out.printf("EvenMin = %s,\n", df.format(evenMin));
        }if (Integer.MIN_VALUE == evenMax){
            System.out.println("EvenMax = No,");
        } else {
            System.out.printf("EvenMax = %s,\n", df.format(evenMax));
        }
    }
}


0
joroai avatar joroai 17 Точки

https://pastebin.com/BqiS0ZDv

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.