Rozdelenie int na cislice – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Rozdelenie int na cislice – C / C++ – Fórum – Programujte.comRozdelenie int na cislice – C / C++ – Fórum – Programujte.com

 

entity
~ Anonymní uživatel
64 příspěvků
30. 8. 2009   #1
-
0
-

Zdar,
chcem spravit program(resp. funkciu) ktory by prevadzal z binarnej do decimalnej sustavy a na to potrebujem vstupne cislo rozdelit na cislice. Teda napr. 1011 rozdelit na 1,0,1,1. Ako to spravim? Je na to nejaka funkcia?

Nahlásit jako SPAM
IP: 85.135.235.–
don_Dominique0
Super člen
30. 8. 2009   #2
-
0
-

To entity : Tak to číslo nenačítej jako číslo ale jako řetězec pak budeš mít v tom řetězci na indexu I znak 0 nebo 1. A pokud je nějakej důvod proč to má být číslo na vstupu, tak postupným dělením 10. a za desetinou čárkou budeš mít vždy to poslední číslo.

Nahlásit jako SPAM
IP: 88.146.211.–
entity
~ Anonymní uživatel
64 příspěvků
30. 8. 2009   #3
-
0
-

Dik, spravim to s tym charom

Nahlásit jako SPAM
IP: 85.135.235.–
tmi0
Věrný člen
30. 8. 2009   #4
-
0
-

To don_Dominique : delit deseti necelociselne a pracovat s des. carkou je hodne hloupy napad
To entity : ty funkce se jmenuji % a /. C%S ti ziska posledni cislici C v soustave o zakladu S, a C/S ti da cislo C s odtrzenou posledni cislici... tedy jednoduchy zpusob jak prevest cislo do retezce obsahujici cifry decimalni soustavy je for(i=0;C;){retezec[i]='0'+(C%10);C/=10;}

Nahlásit jako SPAM
IP: 213.226.226.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
don_Dominique0
Super člen
30. 8. 2009   #5
-
0
-

To tmi : a kdo tady říkal že to musí načíst jako INT? (napsal jsem číslo, číslo neznamená automaticky integer) Sice jsem to nenapsal, ale tohle snad každému dojde ;-)

Nahlásit jako SPAM
IP: 88.146.211.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
30. 8. 2009   #6
-
0
-

To don_Dominique : Hovori ti nieco strojovy epsilon (ci tak nejak sa tomu hovori) - maximalny rozsah chyby pri ukladani realneho cisla .. v skratke, za urcitych okolnosti je 5.0 a 4.99999(to kolko 9 tam je uz zalezi od systemu) to iste - a 0 a 9 je sakra rozdiel. Ak clovek realne typi skutocne nepotrebuje je lepsie sa im vyhybat.
Sam som tymto bugom raz trpel.

Nahlásit jako SPAM
IP: 217.118.98.–
KIIV
~ Moderátor
+43
God of flame
30. 8. 2009   #7
-
0
-

koukam trochu offtopic..
pokud nacita binarni cislo ze souboru nebo klavesnice, neni vubec problem brat to znak po znaku.
odecte se ascii hodnota '0' a je z toho opravdova 0/1

k cemu se tu probira ze v C 2.0-1.0 != 1.0 ?

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
tmi0
Věrný člen
30. 8. 2009   #8
-
0
-

To don_Dominique : prevadet cisla s plovouci radovou carkou mezi soustavami ma takove neprijemne vlastnosti jako treba nekonecne mnoho cislic, takze bych ho moc nedoporucoval :). Sice nikdo nepsal, ze se pouziva integer, ale snad kazdemu kdo rozumi vnitrni reprezentaci cisel dojde ze float typy tady fakt nemaji smysl (i kdyz by mel na vstupu float cislo, mel by rozhodne lepsi nenacitat ho jako float protoze by mu tam vznikla chyba prevodem do dvojkove soustavy s konecnym poctem cislic)

Nahlásit jako SPAM
IP: 213.226.226.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
don_Dominique0
Super člen
30. 8. 2009   #9
-
0
-

To Anonymní uživatel , To tmi : Ano chyby v realných číslech dobře znám, dokonce jsem z toho maturoval :-D . Proto jsem první napsal řešení se stringem. Osobně bych to přes desetinná čísla neřešil, ale pokud se dobře pamatuju, tak jsme to tak na střední jednou řešily v pascalu a fungovalo to!

Nahlásit jako SPAM
IP: 88.146.211.–
entity
~ Anonymní uživatel
64 příspěvků
31. 8. 2009   #10
-
0
-

Vdaka vsetkym za pomoc, este by ma zaujimalo ako sa daju dve cisla spojit, teda napr mame
int jeden= 1; int dva= 2; a vysledny int vysledok by sa mal rovnat 12

Nahlásit jako SPAM
IP: 85.135.173.–
Sergei0
Newbie
31. 8. 2009   #11
-
0
-

To entity : 2 * (10 ^ 0) + 1 * (10 ^ 1) + 0 * (10 ^ 2) + 0 * (10 ^ 3) + ...atd... = 0012

Nahlásit jako SPAM
IP: 62.129.41.–
entity
~ Anonymní uživatel
64 příspěvků
1. 9. 2009   #12
-
0
-

Sergei << vdaka

Mam jeden problem a nechcem kvoli tomu zakladat nove vlakno tak to hodim sem

int array_size, input= 4;

char array[array_size];
array[array_size-1]= input% 2;

problem je v tom ze do array[array_size-1] sa nic nepriradi. Typ char by mal predsa zvladat aj jednociferne cisla.



Nahlásit jako SPAM
IP: 85.135.159.–
m->29+6
Super člen
1. 9. 2009   #13
-
0
-

V array_size máš bordel - mne to padne!!

#include <stdlib.h>

#include <stdio.h>

int main(void) {
int array_size = 29, input= 4;
char array[array_size]; // char array[-29]; !!
array[array_size-1]= input% 2;

printf("%d", array[array_size-1]);

return EXIT_SUCCESS;
}

Nahlásit jako SPAM
IP: 213.151.217.–
entity
~ Anonymní uživatel
64 příspěvků
1. 9. 2009   #14
-
0
-

no skor mam bordel v prispevku, array_size je inicializovana len som to zabudol do prispevku dopisat

Nahlásit jako SPAM
IP: 85.135.159.–
tmi0
Věrný člen
14. 9. 2009   #15
-
0
-

To entity : a jak poznas ze se do array[array_size -1] nic nepriradi? ty jsi se koukal na preklad do instrukci ci co? :). a nebo pro to ze je array[array_size - 1] == 0? Napises-li array[array_size-1] = input%2; tak pro input == 4 to docela ocekavatelne bude 0...

typ char dokonce zvlada i dvouciferna cisla. on zvlada dokonce i 7-ciferna cisla, ale v binarni soustave :).

Nahlásit jako SPAM
IP: 213.226.226.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 100 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý