Kezdőoldal » Számítástechnika » Programozás » Számok összehasonlítása Java...

Számok összehasonlítása Java nyelvben?

Figyelt kérdés
Feladat: Össze kell hasonlítani 1 tömb elemeit,megvizsgálni hogy van-e bennük 3 ugyan olyan szám,ha van és ezek a számok nem egymás mellett szerepelnek akkor igaz a feltételem.Ha nincs bennük 3 ugyan olyan szám,akkor hamis a feltételem.Ha van bennük 3 ugyan olyan szám és nem egymás mellett(akkor true lenne)ám van bennük 3 ugyan olyan szám egymás melett,így hamis értéket kell dobnia. Segítséget megköszönném!

2017. márc. 16. 20:16
1 2
 1/16 A kérdező kommentje:

public class Main {


public static Scanner sc = new Scanner(System.in);

public static void main(String[] args) {

int inNum = sc.nextInt();

int myArray [] = fillArray(inNum);

System.out.println(isContainDistinct(myArray));


}

public static int [] fillArray(int number){

int [] myArray = new int [number];

for(int i = 0; i < myArray.length; i++){

myArray[i] = sc.nextInt();

} return myArray;

}


public static boolean isContainDistinct(int[] array) {


int counter = 0;

for(int i = 0; i < array.length; i++){

if(array.length < 3) System.exit(0);

for (int j = i+1; j < array.length; j++){

if (array[i] == array [j+2]) counter ++;

}

return true;

}return true;

}

}

2017. márc. 16. 20:17
 2/16 SimkoL ***** válasza:

Értsd már meg, hogy már eleve túlméssz a tömb méreten az index-el.

Ha tíz elemű a tömb akkor ciklus 9-ig fut, de te 9 + 2 a 11. elemre hivatkozol → array [j+2]...

for (int j = i+1; j < array.length; j++){

if (array[i] == array [j+2]) counter ++;

2017. márc. 16. 20:24
Hasznos számodra ez a válasz?
 3/16 A kérdező kommentje:
Értem a feltevésed,de nem tudom megoldani a problémát,ha csak simán if (array[i] == array [j]) counter ++; pörgetem,akkor mindenre true-t ad,mivel ugyan azt a tömböt vizsgálja így érthető h mindenre true-t ad.Nem tudom megoldani.Hogyan kellene,segíts kérlek!KÖSZÖNÖM!!!
2017. márc. 16. 20:34
 4/16 SimkoL ***** válasza:

A Java-t utálom mint ördög a tömjénfüstöt, Pascal-ban meg tudom mutatni.


var tomb : array[0..10] of Byte = (1,1,1,2,2,3,4,5,6,7,8);


function van_e_harom : Boolean;

var i, j, n : Byte;

begin

Result := False;

for i := 0 to 9 do

begin

n := 1;

for j := i + 1 to 10 do

if tomb[i] = tomb[j] then Inc(n);

if n > 2 then Result := True;

end;

end;


Ennek ha True az értéke lehet vizsgálni, hogy egymás mellett vannak-e az egyforma számok.

Mint látod a külső ciklus a tömb mérete - 1 ig megy, a belső az pedig a a végéig, de a külső ciklusváltozó + 1 - től indul. A Result, visszatérési érték alapból hamis, de ha talál három egyformát akkor igaz lesz.

2017. márc. 16. 20:43
Hasznos számodra ez a válasz?
 5/16 A kérdező kommentje:

int counter = 0;

for(int i = 0; i < array.length-1; i++){


for (int j = i+1; j < array.length; j++){

if (array[i] == array [j]) counter ++;

}

return true;

}return true;

}

}

Valahogy így gondoltad?

2017. márc. 16. 20:48
 6/16 SimkoL ***** válasza:
Nem !!! Mindjárt leírom C++-ba, hogy megértsd - pedig a Pascal oktatónyelv :) - .
2017. márc. 16. 20:50
Hasznos számodra ez a válasz?
 7/16 A kérdező kommentje:
Nagyon hálás vagyok neked!!
2017. márc. 16. 20:55
 8/16 anonim ***** válasza:

Hihetetlen :D :D :D

Egyébként szerintem már 5 kérdéssel korábban megírták a megoldást...

2017. márc. 16. 21:04
Hasznos számodra ez a válasz?
 9/16 SimkoL ***** válasza:

#include <cstdlib>

#include <iostream>


using namespace std;


int tomb[10] = {1,1,1,2,2,3,4,5,6,7};


int van_e_harom();


int main()

{

if (van_e_harom()) cout << "Van harom egyforma\n";

getchar();

return 0;

}


int van_e_harom(){

int van_e = 0;

int n = 1;

for (int i = 0; i < 9; i++){

n = 1;

for (int j = i + 1; j < 10; j++)

if (tomb[i] == tomb[j]) n++;

if ( n > 2) van_e = 1;

}

return van_e;

}



Így már megérted ?

2017. márc. 16. 21:11
Hasznos számodra ez a válasz?
 10/16 anonim ***** válasza:
De ez még mindig nem az, ráadásul ez minden csak nem C++ (ráadásul a kérdezőnek Java-ban kéne), azt meg főleg nem értem mi a k#rva anyátokat tudtok egy ilyen primitív szaron vergődni hetekig...
2017. márc. 16. 21:16
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!