Rozdělení čísla na cifry pomocí pole
Čau, potřeboval bych poradit s kodem . Mám za úkol rozdělit číslo na cifry (př. 123 - 1,2,3), začátek už mám, ale nějak nedokážu číslice vypsat. Byl by někdo ochoten poradit? Díky moc
kod:
import java.util.Scanner;
public class PrikladPole
{
public static void main (String[] args)
{
int cislo;
int cif;
int pocet;
int[] pole;
Scanner scan = new Scanner(System.in);
System.out.print("Zadej číslo, které chceš rozložit");
cislo = scan.nextInt();
pocet = 0;
while(cislo > 0)
{
cif = cislo / pocet;
cislo = cislo/10;
pocet++;
}
pole = new int[pocet];
for(int i = 0; i<pole.length;i++)
{
cislo = cislo / 10;
}
for(int j = 0; j<pole.length;j++)
System.out.print(pole[j] + ", ");
}
}
Vážně máš jenom problém to vypsat? Nespadne ti to hned na začátku na dělení nulou?
A ty předchozí dvě úlohy jsi už vyřešil?
Po zkompilování mi to normálně vypíše řadu čísel podle počtu (0, 0 ,0), ovšem pouze nuly... Jinak nevím jaké úlohy máte na mysli
Pred cyklem do Pocet das nulu a hend kousek pod tím delis promennou Pocet
Predstav si, ze zadas 1234
Pak si predstavujes, ze do pole budes prirazovat cislo, ktere budes delit 10:
cyklus:
Cislo = 1234/10 = 123,4 (dejme tomu, ze prekladac do Integer priradi 123)
Cislo = 123/10 = 12
Cislo = 12/10 = 1
Takze v poli bys dostal 123, 12, 1, 0
Nehlede na to, ze do toho pole to nikde neprirazujes, tak to nebude ocekavany vysledek, ze?
A nehlede na to, ze po prvnim pruchodu ceyklem ti v promenne Cislo toho moc nezbude
Zkus se podivat na zbytek po celociselnem deleni (MODULO). To bude pro tvuj pripad pouzitelnejsi
Ty předchozí úlohy:
https://forum.zive.cz/viewtopic.php?f=922&t=1315089
https://forum.zive.cz/viewtopic.php?f=922&t=1315116
Omlouvám se, ale Majkl152 nevím kdo je... každopádně úkol na odhalení nejdelší řady stejných čísel jsem nakonec dodělal. Díky za optání
To je opravdu dost těžko uvěřitelné.
Nevíš, kdo je? Zvláštní, že jste dostali podobné zadání. A ještě zvláštnější je, že máte v kódu stejný text včetně stejného překlepu.
1. proč tam to dělení děláš ve dvou cyklech? stačí jeden.
2. do toho pole nikde nic neukládáš
3. to pole budeš chtít vypsat pozpátku
A mohl byste mě prosím navést ke zdárnému konci? Opravdu za každou radu budu rád
Vždyť jsem ti právě poradil, co tam máš špatně.
Ano, to vím a vážíém si toho, ale jak vidíte, a asi si to i myslíte, tak nejsem úplně hacker a v distanční výuce toho člověk nepochytí tolik co normálně. Pokud byste mě aspoň navedl správným směrem, tak bych byl opravdu vděčný
Nemusíš pořád psát, že si toho vážíš. Co bys ale měl dělat, je přečíst si pořádně odpovědi a snažit se je pochopit. Což podle mě vůbec neděláš.
Dobře... omlouvám se, že jste se mnou zbytečně ztrácel čas. Snad už se tady najdou jenom chytří lidé, kteří napoprvé vše umí
Tady nejde o to umět to napoprvé. Ale je potřeba projevit snahu a nečekat, že někdo přinese řešení na stříbrném tácu a ještě si při tom myslet, že ostatní lidé jsou blbci, kterým je vhodné lhát.
1) celé číslo ktoré chceš rozdeliť , budeš deliť 10 timi až kým nedostaneš 0, počet cyklov = počet jeho číslic = velkosť pola
2)a potom ho budeš deliť znovu a ukladať zbytky po delení do poľa na pozície, ktoré zodpovedajú miestam
1234/10 123,4 pole [3]=4
3)posledný cyklus vypíše pole [0-3] a medzi to čiarky
vieš spraviť aspoň to 1) ?