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

Sprawdzenie kodu programu java

VPS Starter Arubacloud
–1 głos
1,355 wizyt
pytanie zadane 25 października 2018 w Java przez mn130496 Gaduła (3,530 p.)

Witam

Jestem studentem drugiego roku informatyki i nie dawno zacząłem naukę programowania w Javie.Ostatnio na zajęciach dostałem takie zadanie: Napisać program, który po wczytaniu wartości liczby całkowitej, oblicza stosunek średniej arytmetycznej cyfr nieparzystych do średniej arytmetycznej cyfr parzystych oraz sprawdza, czy podana liczba jest liczbą pierwszą.Prowadzący zajęcia podpowiedział mi żebym użył konwersji string to char co też uczyniłem.Napisałem taki kod:

package zadania_lab3;
import java.util.Scanner;
public class zad1{
	public static void main(String[] arc ) {
		//deklaracja zmiennych i pobranie danych
		String a;
		System.out.println("Podaj liczbę");
		Scanner odczyt = new Scanner(System.in);
		a=odczyt.nextLine();
		odczyt.close();
		char[] liczba=a.toCharArray();// konwersja string to char 
		char[] parzyste = new char[6];
		char[] nieparzyste = new char[6];
		double suma_parzystych = 0,suma_nieparzystych=0,średnia_parzystych,średnia_nieparzystych,stosunek;
		int licznik=0;
		//rozdzielenie liczby na parzyste i nie parzyste
		for(int i=0; i<liczba.length; i++) {
			if(liczba[i]%2==0) {
				parzyste[i]=liczba[i];
			}else {
				nieparzyste[i]=liczba[i];
			}
		}
		//obliczanie średniej liczb parzystych
		for(int i=0; i<parzyste.length; i++) {
			suma_parzystych+=parzyste[i];
		}
		//wyświetlenie sumy liczb parzystych 
		System.out.println("suma: "+suma_parzystych);
	}
}

	

Niestety utknąłem  w miejscu gdzie obliczam sumę liczb parzystych.Czy ktoś może pomóc mi i wytłumaczyć gdzie robię błąd?. Z góry dziękuję.

Pozdrawiam

3
komentarz 25 października 2018 przez Wiciorny Ekspert (269,120 p.)
jeśli to jest kod studenta II roku informatyki, to nie dobrze to świadczy o Tobie albo o Uczelni...

generalnie, praktyka pisania po poslku ? ... Żeby tego nie uczyli jak powinno się pisac to juz troche slabo
-2
komentarz 26 października 2018 przez kejm_ Bywalec (2,310 p.)
edycja 28 października 2018 przez kejm_
...

4 odpowiedzi

+1 głos
odpowiedź 25 października 2018 przez Mateusz51 Nałogowiec (28,180 p.)
Liczby parzyste i nie parzyste powinny mieć oddzielny licznik przy wstawianiu
+1 głos
odpowiedź 26 października 2018 przez X3h Dyskutant (9,540 p.)
Na początek zapomnij o Januszach z innych odpowiedzi. Ich poglądy na bok. Potrzebujesz sumę i ilość dla parzystych i nieparzystych oraz iterować po ciągu znaków. Znak '9', a liczba 9 mają inną wartość więc warto zredukować znak do liczby. Najlepiej abyś to rozpisał na kartce to znaczy co masz otrzymać i jakie masz dostępne narzędzia.
komentarz 26 października 2018 przez mn130496 Gaduła (3,530 p.)
a mugbyś mi podpowiedzieć jak zamienić chara na inta?
0 głosów
odpowiedź 25 października 2018 przez Wunsz Użytkownik (680 p.)
Twój błąd to programowanie po polsku iksde . Już na samym początku zrobiłeś coś dla mnie nie zrozumiałego. Po co stworzyłeś sobie tablice char o nazwie parzyste i czemu ma rozmiar 6. To zadanie robisz tak że iterujesz sobie każda cyferkę w liczbie. Decydujesz czy ona jest parzysta czy nie parzysta i odpowiednio dodajesz sobie do sumy i zwiększasz licznik o 1.
komentarz 25 października 2018 przez Wiciorny Ekspert (269,120 p.)
edycja 25 października 2018 przez Wiciorny
dla mnie niezrozumiałe jest umieszczenie liczby w klasie i zaczynanie od MAŁEJ litery :D
0 głosów
odpowiedź 28 października 2018 przez Neme Nowicjusz (140 p.)
Nie wiem czy problem jest aktualny ale, nie rozumiem kilku rzeczy.Założeniem programu jest wczytanie x liczb tyle ,że w twoim kodzie pobierasz tylko jedną liczbę.Chyba ,że chodzi o to ,że podajesz np. liczbę 16 i suma/srednia/itp są zliczane z przedziału od 1 do 16, jeśli tak to nie potrzebujesz wgl. tablic.Najłatwiejszy sposób to zrobić sobie 4 zmienne, dwie bedą przechowywać sumę liczb parzystych/nieparzystych a pozostałe dwie będą przechowywać ilość liczb potrzebnych do wyliczenia średniej(do sumowania możesz użyć operatowa +=), głupotą jest rzutować stringa na chara, bo jak wpiszesz liczbę 11 to ta liczba zostanie obcięta do 1. Jak już chcesz rzutować to strina na inta, a użyć do tego możesz metody statycznej klasy Integer o nazwie valueOf.

Co do sprawdzenia czy liczba jest liczbą pierwszą zrób pętle od 1 <= n, gdzie n jest liczbą podana przez użytkownika, zmienną pomocniczą temporary o wartości 0 i inkrementuj ją za każdym razem gdy n%i == 0, jeśli temporary będzie większa od 2 znaczy to ,że liczba nie jest liczbą pierwszą.

Podobne pytania

0 głosów
2 odpowiedzi 348 wizyt
pytanie zadane 11 października 2018 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
2 odpowiedzi 333 wizyt
pytanie zadane 13 listopada 2018 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 160 wizyt
pytanie zadane 2 marca 2019 w Java przez mn130496 Gaduła (3,530 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...