• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Programowanie Java - Tablice

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
463 wizyt
pytanie zadane 29 listopada 2016 w Java przez tyrla Początkujący (270 p.)

Witam,

mam do zrobienia takie zadanie :

Napisz program generujący jednowymiarową losową n-elementową tablicę A, a następnie zwracający sumę jej parzystych elementów znajdujących się na nieparzystych pozycjach w tablicy.

Mój kod wygląda tak :

 public static void main (){
        Random generator = new Random(); 
        int m;
        int wynik=0;
        m = generator.nextInt(10)+1;
        System.out.println("A");
        int []tab1 = new int[m];
        for (int i=0;i<tab1.length;i++){
            tab1[i]=generator.nextInt(10)+1;
            System.out.print(" "+tab1[i]);
        }

        for (int i=0;i<tab1.length;i++){
            if(tab1[i]%2==0)
                wynik+= tab1[i];
        }
        System.out.print("\nSuma parzystach elementów tablicy A wynosi "+wynik);

    }
}

Nie wiem jak napisać warunek że ma tylko brać pod uwagę nieparzyste pozycje w tablicy.

Z góry dziękuje za pomoc.

4 odpowiedzi

0 głosów
odpowiedź 29 listopada 2016 przez ribeiro Stary wyjadacz (11,440 p.)
Zamiast iterować po każdym elemencie (i++) przeskakuj co dwa (i+=2). Nie wiem tylko czy musisz zacząć od i = 0 czy i = 1. To zależy od tego kto co rozumie przez nieparzyste pozycje w tablicy.
0 głosów
odpowiedź 29 listopada 2016 przez mbabane Szeryf (79,260 p.)

mozna np. zrobic 

for(int i = 1; i < tab.length; i = i + 2) 

(tylko nie jestem pewny czy w pewnych przypadkach nie wyjdzie sie poza zakres tablicy)

innym sposobem moze byc wykorzystanie operatora % - modulo - czyli reszta z dzielenia np. 2%2 = 0, 3%2=1, 4%2=0

0 głosów
odpowiedź 29 listopada 2016 przez tyrla Początkujący (270 p.)

Dziękuje Panowie za pomoc.

A mam jeszcze jedno pytanie. Jak w tablicy dwuwymiarowej wyzerować tylko nieparzyste elementy tablicy.

Kod mam taki

 public static void main (){
        Random generator = new Random(); 
        int m,n;
        m = generator.nextInt(10)+1;
        n = generator.nextInt(10)+1;
        System.out.println("A");
        int [][] tab1 = new int [m][n];
        for (int i=0;i<tab1.length;i++)
            for(int j=0;j<tab1[i].length;j++)
                tab1[i][j]=generator.nextInt(10)+1;

        for (int i=0;i<tab1.length;i++)
        {
            System.out.print("\n");
            for(int j=0;j<tab1[i].length;j++)
                System.out.printf("%3d",tab1[i][j]);  
        }

        for (int i=0;i<tab1.length;i++)
            for(int j=0;j<tab1[i].length;j++)
                if(tab1[i][j]%2!=0) {
                    tab1[i][j] =0;
                    System.out.println(tab1[i][j]);
                }
    }
}

 

komentarz 29 listopada 2016 przez playerony Pasjonat (15,220 p.)
Podpowiem, że liczbe nieparzystą masz wtedy gdy liczba%2==1
komentarz 29 listopada 2016 przez tyrla Początkujący (270 p.)
ale czy tab1[i][j]=0; jest dobrze ?
0 głosów
odpowiedź 29 listopada 2016 przez tyrla Początkujący (270 p.)

Wyzerowałem liczby nieparzyste w tablicy, ale pokazują mi się tylko same zera bez liczb parzystych. Jak to wyświetlić ?

public static void main (){
        Random generator = new Random(); 
        int m,n;
        int wynik=0;
        m = generator.nextInt(10)+1;
        n = generator.nextInt(10)+1;
        System.out.println("A");
        int [][] tab1 = new int [m][n];
        for (int i=0;i<tab1.length;i++)
            for(int j=0;j<tab1[i].length;j++)
                tab1[i][j]=generator.nextInt(10)+1;

        for (int i=0;i<tab1.length;i++)
        {
            System.out.print("\n");
            for(int j=0;j<tab1[i].length;j++)
                System.out.printf("%3d",tab1[i][j]);  
        }

        System.out.print("\nB");
        for (int i=0;i<tab1.length;i++)
        {
            System.out.print("\n");
            for(int j=0;j<tab1[i].length;j++)
                if(tab1[i][j]%2==1) {
                    tab1[i][j]=0;
                    System.out.printf("%3d",tab1[i][j]);  

                }
        }
    }
}

 

komentarz 29 listopada 2016 przez mbabane Szeryf (79,260 p.)

To jest w Twoim kodzie:

  for (int i=0;i<tab1.length;i++)
        {
            System.out.print("\n");
            for(int j=0;j<tab1[i].length;j++)
                System.out.printf("%3d",tab1[i][j]); 
        }

Wygodniej jest wedlug mnie wypisywac System.out.print(tab1[i][j]);, a nowa linie mozna tez zrobic tak: System.out.println();

Podobne pytania

0 głosów
1 odpowiedź 281 wizyt
pytanie zadane 4 kwietnia 2021 w Java przez Hubert731 Obywatel (1,650 p.)
0 głosów
0 odpowiedzi 1,314 wizyt
pytanie zadane 20 marca 2020 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 204 wizyt
pytanie zadane 2 marca 2019 w Java przez mn130496 Gaduła (3,530 p.)

93,188 zapytań

142,204 odpowiedzi

322,028 komentarzy

62,516 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2704p. - Tomasz Bielak
  5. 2678p. - Łukasz Siedlecki
  6. 2666p. - rucin93
  7. 2627p. - CC PL
  8. 2485p. - Marcin Putra
  9. 2418p. - Michal Drewniak
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2156p. - Anonim 3619784
  13. 2127p. - Michał Telesz
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...