[JAVA] zadanie tablica a[] wyświetla liczby do 9, następnie w nowej linii wyświetla dalej liczby z tablicy, aż do znalezienia kolejnej 9 itd,koniec tablicy program kończy

0

Dzień dobry
Mam takie zadanie jest tablica
private int a[] = { 2,4,6,7,9,1,5,3,6,7,9,2,2,5,3,10,2,5,7,7,8,1,5};

Program ma za zadanie wyświetlić od początku tablicy a[0] wszystkie liczby, aż do liczby 9 lub znalezienia liczby 9, albo może do przekroczenia liczby 9,
gdzie program zaczyna nową linię "\n", gdzie program wyświetla dalsze liczby po liczbie 9 dalsze liczby z tablicy a[], aż do znalezienia kolejnej liczby 9, następnie
gdzie program zaczyna nową linię "\n", gdzie program wyświetla dalsze liczby po liczbie 9 dalsze liczby z tablicy a[], aż do znalezienia kolejnej liczby 9,
...
następnie gdy program dojdzie do końca tablicy a[], program kończy zadanie

nie wiem od czego zacząć proszę o pomoc
dziękuje

0

Zastosuj pętlę, w której będzie się zawierał warunek. Jeżeli wartość tablicy z danej iteracji będzie się równała 9, wydrukuj liczbę i przejdź do następnej linii.

0

https://www.tutorialspoint.com/java/java_arrays.htm
Przejdź po tablicy i porównuj każdą z wartości do 9. Jeżeli warunek będzie się zgadzać wstaw nową linię, tyle.

0

Dziękuje za odpowiedź
Przepraszam, że tak późno, ale byłem zajęty coś mi się udało pokombinować i mam problem wyskakuje mi błąd


public static String ZmienNaGodzine(String string5)
  {
    int int8;
    int int9; 
    int int10;
    int int13;
    String string6;
    String string7;    
    
    int8 = Integer.parseInt(string5);
    int9 = int8 / 60;
    int13= int9 * 60;
    int10 = int8 - int13;
    string6 = Integer.toString(int10);
    if (int10 < 10) 
    {
      string6 = "0" + string6;
    }
    string7 = string6;
    return string7;
  }

public static int Godzina(String string7)
  {
    int int6;
    int int7;
    String string5;    
    
    int6 = Integer.parseInt(string7);
    int7 = int6 / 60;
    string5 = Integer.toString(int7);
    return Integer.parseInt(string5);
  }


    public static void main(String[] args) 
    {
    String string3All = "5,59,60,61,62,63,125,136,268,352,486,579,681,732,740,842,962";
    int int1 = 1;
    int int2 = 0;
    int int3;
    int int4;
    int int5;
    int int11;
    String string1 = "";
    String string2 = "";
    String[] string4All;
   
    
          for (int3 = 0; int3 < string3All.length(); int3++)
      {
    string4All = string3All.split(  ",");
     if (Integer.parseInt(string4All[int3]) != -1)
        {
           int4 = Integer.parseInt(string4All[1]);
         int11 = Integer.parseInt(string4All[int3]);
        int5 = Godzina(Integer.toString(int11));
          if (int1 == 1)
          {
            int2 = int5;
            string1 = int5 + ": ";
            int1 = 0;
          }
          if (int2 == int5)
          {
            string1 = string1 + ZmienNaGodzine(Integer.toString(int11)) +  " ";
          }
          else
          {
                System.out.println(string1 + " ");
            string1 = int5 + ": " +  ZmienNaGodzine(Integer.toString(int11)) + " ";
            int2 = int5;
          }
        }
      }
    }
    
}

wynik
[code]
run:
0: 05 59
1: 00 01 02 03
2: 05 16
4: 28
5: 52
8: 06
9: 39
11: 21
12: 12 20
14: 02
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 17
at rozkad_ok_2017.Rozkad_ok_2017.main(Rozkad_ok_2017.java:70)
/home/zcomp/.cache/netbeans/8.2/executor-snippets/run.xml Java returned: 1
BUILD FAILED (total time: 0 seconds)
[/code]

błąd jest w
[code]
if (Integer.parseInt(string4All[int3]) != -1)
[/code]

Chce wstawić do brakujących pustych godzin
np: 3,6,7,10,13 z tabeli wyżej
na
[code]
0: 05 59
1: 00 01 02 03
2: 05 16
3: --
4: 28
5: 52
6: --
7: --
8: 06
9: 39
10: --
11: 21
12: 12 20
13: --
14: 02
[/code]
Proszę o pomoc rozwiązaniu problemu
dziękuje za odpowiedz

0
 for (int3 = 0; int3 < string3All.length(); int3++)
  {
  string4All = string3All.split(  ",");

zamień na

  string4All = string3All.split(  ",");
 for (int3 = 0; int3 < string4All.length(); int3++)
  {

0

Dziękuje za odpowiedz

  
public static String ZmienNaGodzine(String string5)
  {
    int int8;
    int int9; 
    int int10;
    int int13;
    String string6;
    String string7;    
    
    int8 = Integer.parseInt(string5);
    int9 = int8 / 60;
    int13= int9 * 60;
    int10 = int8 - int13;
    string6 = Integer.toString(int10);
    if (int10 < 10) 
    {
      string6 = "0" + string6;
    }
    string7 = string6;
    return string7;
  }


public static int Godzina(String string7)
  {
    int int6;
    int int7;
    String string5;    
    
    int6 = Integer.parseInt(string7);
    int7 = int6 / 60;
    string5 = Integer.toString(int7);
    return Integer.parseInt(string5);
  }


    public static void main(String[] args) 
    {
    String string3All = "5,59,60,61,62,63,125,136,268,352,486,579,681,732,740,842,962";
    int int1 = 1;
    int int2 = 0;
    int int3;
    int int4;
    int int5;
    int int11;
    int int14 = 0;
    int int15; 
   
    String string1 = "";
    String string2 = "";
    String string8; 
    String string9;     
    String[] string4All;
   
    
    string4All = string3All.split(  ",");
    for (int3 = 0; int3 < string4All.length; int3++)
    {
     if (Integer.parseInt(string4All[int3]) != -1)
        {
        int4 = Integer.parseInt(string4All[1]);
        int11 = Integer.parseInt(string4All[int3]);
        int5 = Godzina(Integer.toString(int11));
        string9 = ZmienNaGodzine(Integer.toString(int11));
        
          if (int1 == 1)
          {
            int2 = int5;
            string1 = int5 + ": ";
            int1 = 0;
          }
          if (int2 == int5)
          {
            // string1 = string1 + string9 +  " ";
          }
          else
          {
            string8 = (int5 + (Integer.parseInt(string4All[int14])==int5 ? "| " + string9 :"| --"));
              System.out.println(string8 + " ");             
           // string1 = int5 + ": " +  string9 + " ";
            int2 = int5;
              
          }
         
        }
     
      }
    }
    
}


wynik
[code]
run:
1| --
2| --
4| --
5| 52
8| --
9| --
11| --
12| --
14| --
16| --
BUILD SUCCESSFUL (total time: 0 seconds)
[/code]

Proszę o pomoc nie wczytuje mi wszystkich danym z tablicy

0

Ale bigos masz w tym kodzie, gdzie moja melissa...

Ten kod działa tylko w jednym przypadku.

 string8 = (int5 + (Integer.parseInt(string4All[int14])==int5 ? "| " + string9 :"| --"));

int14 jest zawsze równy 0
string4All[int14] == string4All[0]
string4All[0] jest równy liczbie 5, bo to pierwsza liczba w tablicy

int5 zawiera ilość godzin mieszczących się w danej liczbie // 352 == 5 godzin * 60 = 300 + 52 minuty jedyne równanie spełniające równość
(string4All[int14]= 5) == (int5 = 5) // warunek spełniony tylko w przypadku ilości godzin równej 5 czyli zakres od 300 do 359.
(Integer.parseInt(string4All[int14])==int5

w string9 jest reszta minut
teraz wykona się "| "+ string9 czyli "| 52"

W każdym innym przypadku liczba godzin nie zgadza się z liczbą godzin z elementu string4All[0] czyli 5.
I zostanie wypisane "| --"

0

Dzień dobry
Dziękuje za odpowiedz

Prosiłbym o pomoc rozwiązaniu problemu

public class Rozklad_ok_2017_1 
{
  
public static String ZamianaNaGodzine(int int14)
  {
    int int10;
    int int11; 
    int int12;
    int int13;
    String string10 = "";
    String string11;    

    int11 = int14 / 60;
    int13= int11 * 60;
    int14 = int14 - int13;
   
    if (int14 < 10) 
    {
      string10 = "0" + int14;
    }
    else
    {
      string10 = int14 + " ";        
    }
    
    string11 = string10 + "";
    
    return string11;
  }

public static int Godzina(int int22)
  {
    int int20;
    int int21;
    String string20;    

    int21 = int22 / 60;
    string20 = Integer.toString(int21);
    return Integer.parseInt(string20);
  } 

    public static void main(String[] args) 
    {
    int[] intAll1 = {  65,95,105,125,145,155,166,185,210,500,800 };        
    
    int int1 = 1;
    int int2 = 0;
    int int3;
    int int4;    
    int int5; 
    
    String string1 = "";
    String string2 = "";
    String string3; 
    String string4;     
 
    for (int3 = 0; int3 < intAll1.length; int3++)
    {
     if (intAll1[int3] != -1)
        {
        int4 = intAll1[int3];
        int5 = Godzina(int4);
        string4 = ZamianaNaGodzine(int4) + "";

          if (int1 == 1)
          {  
            int2 = int5;
            string1 = int5 + "|| ";
            int1 = 0;
          }
          if (int2 == int5)
          {
            string1 = string1 + string4 +  " ";
          }
          else
          {
            string3 = (int2 + (int2 == int5 ? "|| " + int2 +  " " : "|| --"));
              
            System.out.println ( string3  + " "); 
            System.out.println ( string1  + " ");
            
            string1 = int5 + "|| " +  string4 + " ";
            int2 = int5;
          }
        }
    }
    }
}


wynik
run:
1|| -- 
1|| 05 35  45   
2|| -- 
2|| 05 25  35  46   
3|| -- 
3|| 05 30   
8|| -- 
8|| 20   
BUILD SUCCESSFUL (total time: 0 seconds)

Chce osiągnąć taki efekt


1|| 05 35  45   
2|| 05 25  35  46   
3|| 05 30   
4|| -- 
5|| --
6|| --
7|| --
8|| 20

Myślę jak tu zrobić

Proszę o pomoc dziękuje

0

Za dużo to ja się nie znam ale czy nie chodzi o coś takiego:

package Numer9;
public class FIndNineEleven{
public static void main(String[] args) {
int a[] = {2, 4, 6, 7, 9, 1, 5, 3, 6, 7, 9, 2, 2, 5, 3, 10, 2, 5, 7, 7, 8, 1, 5};
for (int i = 0; i < a.length; i++) {
if (a[i] == 9) System.out.println(a[i]);
else System.out.print(a[i] + " ");}
System.out.println("\nQniec zadania");}}

0

Dziękuje za odpowiedz
panie

KsJudas

dziękuje za pomoc
to już rozwiązałem. Teraz chce rozbudować moje zadanie i się zawiesiłem.

Prosiłbym o jeszcze jedną pomoc.
Jak połączyć
dane z tejstrony
Java- wypisanie liczb, które nie są podane w tablicy , wypisanie liczb z tablicy oraz które nie są w tablicy?

z kodem, który podałem wyżej, a żeby osiągnąć wynik

1|| 05 35  45   
2|| 05 25  35  46   
3|| 05 30   
4|| -- 
5|| --
6|| --
7|| --
8|| 20

Jeszcze raz dziękuje za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1