» »

[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

Randomness ::

Kako imaš deklarirano tabelo?

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.

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?
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 :)

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).
The truth is rarely pure and never simple.

mallard ::

char tabela[4][9] = { "  1 2 3 ",
                      "1| | | |",
                      "2| | | |",
                      "3| | | |"  };

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').

chrispy ::

aha kul, razumem hvala ti

Mavrik ::

chrispy je izjavil:

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 ()

chrispy ::

ja je :)
kar koli bo v " " je uporabljeno kot znak :) oz. char

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C] Kazalčna aritmetika

Oddelek: Programiranje
292766 (1547) blay44
»

[C] struct in int[] (strani: 1 2 )

Oddelek: Programiranje
656819 (5892) MrBrdo
»

C# (strani: 1 2 )

Oddelek: Programiranje
9711450 (8285) Ericssony
»

[C++] Delo s *.txt datotekami

Oddelek: Programiranje
191956 (1432) Tr0n
»

[C++][Naloga_polja]MIN in MAX polja, izpis za x.100 stevil

Oddelek: Programiranje
222822 (2633) snow

Več podobnih tem