Algorytm - błędny wynik

Algorytm - błędny wynik
Rafał Masny
  • Rejestracja:około 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

Dlaczego po wpisaniu takich liczb:
12
6
-10
5
-1
4
8
-3
9
11
-40
6
18

Zwraca mi wynik: 24, 11, 12
Zamiast: 3, 9, 33
Co zrobiłem nie tak?

screenshot-20211202183207.png

Kopiuj
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class main {

    public static int licznik=0;

    public static void main(String[] args) throws FileNotFoundException {

        int max=0;
        int maxindex=0;
        int minindex=0;

        File file = new File("In0103.txt");
        PrintWriter zapis = new PrintWriter("Out0103.txt");
        Scanner in = new Scanner(file);

        int n = in.nextInt();
        int[] tab = new int[n];
        int k;
        int liczba;

        for(int i=0; i<n; i++) {
            k = in.nextInt();
            tab[i] = k;

            liczba=k;
            if(i==n-1) {
                if(liczba>=0) {
                    max+=liczba;
                    maxindex=i+1;
                }
            }
            else if ((max+liczba)<=0) {
                max=0;
            }
            else {
                max+=liczba;
                maxindex=i+1;
            }
            licznik++;
        }

        int o=max;

        for(int x=maxindex-1; x>0; x--) {
            if(o>0) {
                o-=tab[x];
                minindex=x+1;
                licznik++;
            }
        }
        System.out.println(licznik);

        zapis.println(max + ", " + minindex + ", " + maxindex);
        zapis.close();
    }
}

lion137
  • Rejestracja:ponad 8 lat
  • Ostatnio:3 minuty
  • Postów:4946
1

Debugowałeś? Tam jakies dziwne rzeczy się dzieją, indeksy w złej kolejności, i wyłazisz poza tablicę.


YO
  • Rejestracja:ponad 11 lat
  • Ostatnio:prawie 3 lata
  • Postów:540
2

Tylko dodajesz liczby do siebie, nie odejmiesz strat.
To powinno działać:

Strata + Zysk + Strata + Zysk + Zysk

I gdzie mam najwięcej zysk(max) = strata+= suma(strata).


Dziura w ścianie gdzie Panowie widzą Panie,
Rick and Morty, season 1.
Szukam tej dziury, jak coś dajcie znać gdzie jest :D "A z Ciebie c**** pisowski" - Ula Papuszko (w sensie, że JA) 05.06.2020 r., grupa: Strajk Przedsiębiorców. Witam zatem, jestem c**** pisowski ;)
vpiotr
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
0

Jak masz 12 elementow to jak Ci moze wyjsc 33?

edytowany 1x, ostatnio: vpiotr

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.