Forum » Programiranje » [C] podatkovni tipi
[C] podatkovni tipi
chrispy ::
Hočem da mi 2d tabela izpisuje (s funkcijo printf)
polje 8*4
v tem polju pa so tako znaki kakor števila in črke, tako da nemorem uporabiti ne %d niti %c, kaj naredit v takem primeru?? hvala
polje 8*4
v tem polju pa so tako znaki kakor števila in črke, tako da nemorem uporabiti ne %d niti %c, kaj naredit v takem primeru?? hvala
chrispy ::
int
pa ko imam funkcije je tudi deklarirana kot int.
Opazil sem še en problem. Prvotno sem delal tabelo da bo velika 3*3 polje pač tab[3][3], sem pa ugotovil da bo bolše če uporabljam 8*4, tako da sem tut povečal na tab[8][4]
pa, kot kaže program še vedno uporablja samo 3*3 tabelo.
pa ko imam funkcije je tudi deklarirana kot int.
Opazil sem še en problem. Prvotno sem delal tabelo da bo velika 3*3 polje pač tab[3][3], sem pa ugotovil da bo bolše če uporabljam 8*4, tako da sem tut povečal na tab[8][4]
pa, kot kaže program še vedno uporablja samo 3*3 tabelo.
Zgodovina sprememb…
- spremenil: chrispy ()
Mavrik ::
Problem ni izpis, problem je to da v tabelo števil tlačiš znake in števila in nisi sposoben ločiti kaj je v poljih.
Kakšna je sploh uporabna vrednost tabele v kateri po shrambi nisi sposoben prepoznati podatka?
Kakšna je sploh uporabna vrednost tabele v kateri po shrambi nisi sposoben prepoznati podatka?
The truth is rarely pure and never simple.
chrispy ::
v bistvu sem hotel narediti tako tabelo, in potem bi v prostorcke vpisoval x oz. o
primer: jas bi vpisal 3 3 x in v prazno polje 3 3 bi se vpisal znak x.
1 2 3
1| | | |
2| | | |
3| | | |
fora je samo v tem da smo se v šoli začeli učit tabele (1d in 2d) pa se mi je zdelo pametno da neki naredim za vajo :)
primer: jas bi vpisal 3 3 x in v prazno polje 3 3 bi se vpisal znak x.
1 2 3
1| | | |
2| | | |
3| | | |
fora je samo v tem da smo se v šoli začeli učit tabele (1d in 2d) pa se mi je zdelo pametno da neki naredim za vajo :)
Zgodovina sprememb…
- spremenil: chrispy ()
Mavrik ::
No, lekcija tule je to, da skoraj nikoli ni pametno mešati različnih vrst podatkov v tabelah :)
Če imaš znake, potem mej znake, če imaš integerje, mej integerje, ker drugače imaš problem, ker ne veš kaj je kaj ("znaki" so koneckoncev samo števila s posebno interpretacijo kar se tiče računalnika).
Če imaš znake, potem mej znake, če imaš integerje, mej integerje, ker drugače imaš problem, ker ne veš kaj je kaj ("znaki" so koneckoncev samo števila s posebno interpretacijo kar se tiče računalnika).
The truth is rarely pure and never simple.
chrispy ::
eo mallard točno tole sem rabil hvala ti. Je možno da mi kdo od vas profijev še razloži po kakšnem principu tale mallardova stvar dela, ker sam sem pa pač uporablal switch/for/if stavke da sem jo izpisal, pa na koncu ni delalo.
joze-67 ::
Izkorišča razliko med 0 in '0'. V sprejeti rešitvi ni števil, pač pa podobe števil. Ko izpišeš, je vseeno. Šele pri aritmetiki se zalomi ('0'+1='1', ampak '0'+'1'='a').
Mavrik ::
aha kul, razumem hvala ti
Kot je jože omenjal, zavedati se moraš razlike med številko 0 (tip int, v pomnilniku shranjena kot 0) ter znakom, ki zgleda kot "0" (tip char, v pomnilniku shranjen kot številka 48 - glej ASCII tabelo).
Za izpis prvega rabiš %d, za izpis drugega rabiš %c. Če boš s %d izpisoval znak "0" boš dobil izpisano število 48. Je zdaj to malo bolj jasno? :)
The truth is rarely pure and never simple.
Zgodovina sprememb…
- spremenil: Mavrik ()
bi0s ::
Uporabno si je zapomniti da se za polje znakov uporablja ", medtem ko za en sam znak '.
char a = 'a'; char poljeZnakov[] = "polje";
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C] Kazalčna aritmetikaOddelek: Programiranje | 3041 (1822) | blay44 |
» | [C] struct in int[] (strani: 1 2 )Oddelek: Programiranje | 7339 (6412) | MrBrdo |
» | C# (strani: 1 2 )Oddelek: Programiranje | 12052 (8887) | Ericssony |
» | [C++] Delo s *.txt datotekamiOddelek: Programiranje | 2016 (1492) | Tr0n |
» | [C++][Naloga_polja]MIN in MAX polja, izpis za x.100 stevilOddelek: Programiranje | 2940 (2751) | snow |