Zmiana wartości intów

Zmiana wartości intów
kllewy
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:5
0

Krótka rzecz. Dwa inty chcę zamienić miejscami. Podobno da się to zrobić bez zmiennej pomocniczej. Proszę o podpowiedź.

Kopiuj
int a = 4, b = 8;
int c;
System.out.println(a + " " + b);
c = a;
a = b;
b = c;
System.out.println(a + " " + b);
AK
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:82
0

Potraktuj te 2 liczby jak długości odcinków.

edytowany 1x, ostatnio: aksjio
Gjorni
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 lata
0

Wykorzystaj metodę przyjmującą dwa parametry zwracającą argument podany do pierwszego z jej parametrów, a zamiany wartości dokonuj w linijce wywołującej tą metodę w jej nawiasach.

EDIT

Przykład:

Kopiuj
public class SwapTwoVariables {
	public static void main(String[] args) {
		int a = 7, b = 1;
		a = returnFirst(b, b = a);
		System.out.println("a: " + a + ", b: " + b);
	}
	
	public static int returnFirst(int x, int y) {
		return x;
	}
}

A działa to, bo Java gwarantuje przetwarzanie argumentów od lewej do prawej. Jednak należy podkreślić, że po przesłaniu zmiennej b do pierwszego parametru jej wartość zostaje na chwilę "zawieszona", przez co faktycznie wykorzystywane są trzy zmienne.


The quieter you become, the more you are able to hear.
edytowany 3x, ostatnio: Gjorni
Shalom
A dodatkowa zmienna na stosie :P
Gjorni
No w sumie racja, bo jednak pierwszy argument będzie przez chwilę "wisiał".
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
2

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Lucas Darkstorm
Lucas Darkstorm
Mój ulubiony sposób ;).
Gjorni
Powinien się nazywać aabbabaab :P
bogdans
Mój ulubiony to Pythonowski: a,b = b,a.
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0
Kopiuj
        int a = 20;
        int b = 45;

        // swap
        a = a + b;
        b = a - b;
        a = a - b;

vs

Kopiuj
        int a = 20;
        int b = 45;

        int tmp = a;
        a = b;
        b = tmp;

ja wolę 2 rozwiązanie, bo czytelniejsze.


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

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.