Logika v C

Sekcia: Programovanie 04.07.2007 | 13:32
Avatar Viliam Oravec Kubuntu 10.04 (MSI GX700PX)  Používateľ
Napísal som si program na porovnávanie podmienok:
# include  <stdio.h>

main ()
{
	int i = 3, j = 4;
// hodnota 0 znamená nepravda. Hocaké iné číslo rôzne od 0 znamená pravda.
	printf ("%d\n", i == 3);
	printf ("%d\n", j >= 6);
	printf ("%d\n", j = 5);
	printf ("%d\n", i < 6);
	printf ("%d\n", j == 4);
}

Učím sa programovať podľa takého haluzného učebného textu. Stiahol som ho zo stránky Školy pre mimoriadne nadané deti a gymnázium Teplická 7 Bratislava.

výstup programu po skompilovaní bol:

viliam@viliam-desktop:~$ '/home/viliam/Desktop/logika'
1
0
5
1
0
viliam@viliam-desktop:~$

Celé by som to chápal, ale prečo mi posledný riadok výpisu píše hodnotu 0?
Veď j = 4 a printf ("%d\n", j == 4); tak by to malo písať 1, nie?
pls help.
Všichni mněli ruce od krve, jenom já hubu... :)
    • Re: Logika v C 04.07.2007 | 13:38
      Avatar duben Slackware  Používateľ
      nezmenil si j v tomto riadku ? printf ("%d\n", j = 5);
      • Re: Logika v C 04.07.2007 | 13:41
        Srigi   Návštevník
        Tak tak, j != 4
        • Re: Logika v C 04.07.2007 | 13:44
          Avatar Viliam Oravec Kubuntu 10.04 (MSI GX700PX)  Používateľ
          v tomto prípade to funguje. Ale prečo to nechce ísť v mojom prípade?
          Všichni mněli ruce od krve, jenom já hubu... :)
          • Re: Logika v C 04.07.2007 | 14:57
            Srigi   Návštevník
            Pretoze na riadku
            printf ("%d\n", j = 5);
            robis priradenie 5-ky do j, nie porovnanie. Pozor na to.
            j == 5 // porovnanie
            j = 5  // pripadenie (naplnenie hodnotou)
            • Re: Logika v C 04.07.2007 | 16:04
              Avatar Viliam Oravec Kubuntu 10.04 (MSI GX700PX)  Používateľ
              Aha díky za pomoc. A ja že som niečo nepochopil.
              Všichni mněli ruce od krve, jenom já hubu... :)
      • Re: Logika v C 04.07.2007 | 13:42
        Avatar Viliam Oravec Kubuntu 10.04 (MSI GX700PX)  Používateľ
        main ()
        {
        	int i = 3, j = 4;
        // hodnota 0 znamená nepravda. Hocaké iné číslo rôzne od 0 znamená pravda.
        	printf ("%d\n", i == 3);// bude hodnota 1
        	printf ("%d\n", j >= 6);// bude hodnota 0
        	printf ("%d\n", j = 5);// bude hodnota 5 - je to iba prostý riadok znamenajúci "dosaď čislo 5"
        	printf ("%d\n", i < 6);// bude hodnota 1
        	printf ("%d\n", j == 4);// BY MALA BYŤ 1
        }
        

        Ináč ako vidím práve si mi ukradol podpis.
        Všichni mněli ruce od krve, jenom já hubu... :)
    • off topic 04.07.2007 | 15:08
      Avatar uid0 Debian  Používateľ
      // komentare su sice definovane v C99, ale k C sa nehodia...
      Debian. apt-get into it…
      • Re: off topic 04.07.2007 | 17:03
        Avatar borg Arch, Debian jessie  Administrátor
        no ked bereme, ze default je gnu89, ktora obsahuje aj niektore vlastnosti z c99, tak je to absolutne jedno ake pouzije. co mu lepsie pasuje.
        • Re: off topic 04.07.2007 | 18:21
          Avatar uid0 Debian  Používateľ
          kod vobec nemusi splnovat standard, hovorim o tom co sa nehodi
          Debian. apt-get into it…
          • Re: off topic 04.07.2007 | 18:29
            Avatar borg Arch, Debian jessie  Administrátor
            hovorim o tom co je defaultne povolene
            • Re: off topic 04.07.2007 | 18:35
              Avatar uid0 Debian  Používateľ
              taky komentar ti to realne prekladace zrali davno predtym nez nejake C99 uzrelo svetlo sveta a nemuselo sa jednat o ziadne GNU rozsirenia.

              opakujem, hovorim o tom co sa nehodi
              Debian. apt-get into it…
              • Re: off topic 04.07.2007 | 18:41
                Avatar borg Arch, Debian jessie  Administrátor
                to je mi jedno ci to brali alebo nebrali pred c99, ja len pisem ze ich moze pouzivat, ak sa mu zdaju lepsie.
                • Re: off topic 04.07.2007 | 18:50
                  Avatar uid0 Debian  Používateľ
                  ano, to moze
                  Debian. apt-get into it…
                  • Re: off topic 04.07.2007 | 20:38
                    Avatar Igor Hlina Mac OS ML  Používateľ
                    heh po odoslani prispevku mi toto presne zacalovadit (a zachybala mi fnc "edit prispevku", ale o tom nediskutujme).

                    Som nazoru ako uid0, ked vysvetlujes nieco ako tu napr. C-ko, treba byt korektny, mali tam byt normovane komentare.
                    while (2*2 == 5) { echo "If you're reading this, something is definitely wrong"; }
                    • Re: off topic 04.07.2007 | 20:46
                      Avatar uid0 Debian  Používateľ
                      v C99 su uz tieto komentare ale naozaj sa tam nehodia. treba nejaku stabnu kulturu. podobne ako si treba osvojit "one true brace style" :)
                      Debian. apt-get into it…
                      • Re: off topic 04.07.2007 | 21:19
                        Avatar Igor Hlina Mac OS ML  Používateľ
                        jj, stabna kultura = 50% citatelnosti.
                        while (2*2 == 5) { echo "If you're reading this, something is definitely wrong"; }
                        • Re: off topic 04.07.2007 | 21:24
                          Avatar Igor Hlina Mac OS ML  Používateľ
                          one true brace style - tak sa vola ta vec okolo zatvoriek? Toto ma vzdy zaujimalo, ako pisat - co by mi ludia doporucili. A ako pozeram, na wikipedii je o tom tematicka stranka. Tento styl aj ja pouzivam.
                          while (2*2 == 5) { echo "If you're reading this, something is definitely wrong"; }
                          • Re: off topic 04.07.2007 | 21:35
                            Avatar uid0 Debian  Používateľ
                            braces = {}

                            K&R = 1TBS
                            Debian. apt-get into it…
                    • Re: off topic 04.07.2007 | 21:30
                      Avatar borg Arch, Debian jessie  Administrátor
                      ja pouzivam oba typy, to ze to niekomu vadi mi je absolutne jedno.
                      • Re: off topic 04.07.2007 | 21:35
                        Avatar uid0 Debian  Používateľ
                        su zbytocne a vypovedaju o tebe, ze mas zly editor :P
                        Debian. apt-get into it…
                        • Re: off topic 04.07.2007 | 21:38
                          Avatar borg Arch, Debian jessie  Administrátor
                          hm, prezrad v com su zbytocne? ja mam dobry editor ;) a navyse nemyslim, ze styl komentovania daco hovoria o cloveku,o cloveku hovori zdrojak a styl kodovania, nie komentovania. co z toho ze pouzivas ten "spravny" styl komentovania, ked ti kod vyzera ako prasacina. holt, mne je jedno kto aky styl komentovania pouziva, ale neni mi jedno aky styl kodovania ma.
                          • Re: off topic 04.07.2007 | 21:45
                            Avatar uid0 Debian  Používateľ
                            ja za to nemozem, // ma zle vyzarovanie. mam pocit, ze pouzivanie praveze podnecuje prasaciny (sam viem ako som ich kedysi pouzival ja a rovnako ich pouzivaju aj ini, pritom by stacil poriadny editor).

                            a mne nemoze kod vypadat jak prasacina, editor mi tabuje a riadkuje podla K&R ;)
                            Debian. apt-get into it…
                            • Re: off topic 04.07.2007 | 21:48
                              Avatar borg Arch, Debian jessie  Administrátor
                              kod neni len o formatovani ;) na temu komentare nemam uz co dodat.
                              • Re: off topic 04.07.2007 | 21:51
                                Avatar uid0 Debian  Používateľ
                                zo zle vyzerajuceho kodu (o tom pises) mozes len tazko poznat ci je dobry alebo zly
                                Debian. apt-get into it…
                                • Re: off topic 04.07.2007 | 21:55
                                  Avatar borg Arch, Debian jessie  Administrátor
                                  ako myslis, ja uz nevidim dovod viest tuto zabomysiu vojnu.
                                  • Re: off topic 04.07.2007 | 21:57
                                    Avatar uid0 Debian  Používateľ
                                    ja tu nic nevediem, nazory sme si uz vymenili :)
                                    Debian. apt-get into it…
                                    • Re: off topic 04.07.2007 | 21:59
                                      Avatar borg Arch, Debian jessie  Administrátor
                                      to som rad :)
                            • Re: off topic 04.07.2007 | 21:59
                              Avatar Igor Hlina Mac OS ML  Používateľ
                              heh prezrad v com kodis (mohol by si na web hodit konfigurak). Toto su presne veci co by som potreboval optimalizovat - svoj editor (a rozlozenie klaves).
                              while (2*2 == 5) { echo "If you're reading this, something is definitely wrong"; }
                              • Re: off topic 04.07.2007 | 22:23
                                Avatar uid0 Debian  Používateľ
                                emacs. ale zaciatky su vzdy tazke, v LDP je celkom dobry strucny uvod na zacatie, ine uzitocne veci sa najdu casom :) je dobre si pisat na papier cheatsheet s nazvami funkcii a ich skratkami.
                                Debian. apt-get into it…