Avatar
28tomino
Člen
Avatar
28tomino:

Takze prvy program zadanie, ak sa niekomu chce moze to nakodiť, samozrejme v C,
1,Je zadané jednorozmerné pole celých čísel M[12]. Vytvorte program, ktorý naplní prvky na párnej pozícii poľa hodnotou 1, prvky na nepárnej pozícii poľa hodnotou 0 a vypíše modifikované pole. V konečnom výpise poľa nech sú jednotlivé prvky oddelené čiarkou a medzerou.

 
Odpovědět 30.10.2012 19:57
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na 28tomino
David Čápka:

A to máš do školy? Jen se nad tím zamysli :)

Nahoru Odpovědět 30.10.2012 20:02
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

Asi bych měl zapracovat na slovenštině, ale myslím že nepárnej pozice bude nejspíš lichá a párnej :D bude nejspíše sudá.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int m[12]; // celočíselné pole s hodnotou 12+1 (0)
    int deleni,i;
    // zapisování do pole
    for(i = 1; i < 13; i++)
    {
        deleni = i%2;
        if(deleni == 0) // pokud i bude sudé
        {
            m[i] = 1;
        }
        else
        {
            m[i] = 0;  // pokud i bude liché
        }
    }
    // vypisuji pole
    for(i = 1; i < 13; i++)
    {
        printf("%d",m[i]);
    }
    return 0;
}
Nahoru Odpovědět 30.10.2012 20:05
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Nahoru Odpovědět 30.10.2012 20:05
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:

Ty seš ale, teď se nic nenaučí :D

Nahoru Odpovědět 30.10.2012 20:06
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na Зайчик
Lukáš Hruda (Luckin):

Můžu mít dotaz? Jakto že indexuješ pole od 1 do 12 místo od 0 do 11?

 
Nahoru Odpovědět 30.10.2012 20:10
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Čápka
Зайчик:

Tak ještě jednou se všema popiskama aby jsi vše chápal jak je to správně a pořádně si to pročti, popřípadě mrkni na můj článek o C pole,cykly atd : http://www.itnetwork.cz/…ecko-zaklady

#include <stdio.h> // klasicka knihovna pro základní funkce
#include <stdlib.h> // IO

int main(void)
{
    int m[12]; // celočíselné pole s hodnotou 12+1 (0)
    int deleni,i; // deleni pro i%2
    // zapisování do pole
    for(i = 1; i < 13; i++) // cyklus projede 12x
    {
        deleni = i%2;   // záskám zbytek po dělení
        if(deleni == 0) // když zbytek po dělení vyjde 0 bude číslo sudé
        {
            m[i] = 1; // zapisuju do pole 1čku (sudé číslo)
        }
        else
        {
            m[i] = 0;  // pokud bude číslo po dělení 1 číslo bude liché zapisuju 0
        }
    }
    // vykresluju pole
    for(i = 1; i < 13; i++)
    {
        printf("%d",m[i]);
    }
    return 0;
}
Nahoru Odpovědět  +1 30.10.2012 20:10
Коммунизм для нашего будущего!
Avatar
28tomino
Člen
Avatar
28tomino:

ano mam to do skoly, ale tych prikladov mam strasne vela, a nestiham to neak vsetko, nakolko sa C ucim cca iba dva mesiace co je strasne malo, ale dakujem, tvoje clanky som presiel vsetky, myslim si ze pre zaciatocnika ako som ja su perfektne,

Editováno 30.10.2012 20:13
 
Nahoru Odpovědět 30.10.2012 20:11
Avatar
Зайчик
Člen
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Зайчик:

Chtěl si vyplnit 1-12, pole začíná od nuly, takže jsem začal zapisovat a vykreslovat až od jedničky :) (kdyby jsi chtěl vše si samozřejmě podle vzoru už sám upravíš)

EDIT : jinak tohle pole má 13 hodnot včetně té nuly
EDIT2 : od jedničky začínám protože používám I i jako hodnotu na dělení alias čísla 1-12 abych nemusel použít další proměnnou

Editováno 30.10.2012 20:14
Nahoru Odpovědět 30.10.2012 20:11
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:

Také nechápu to m[12] musí udělat 0-11 ne? Nelezeš z pole?

Nahoru Odpovědět 30.10.2012 20:13
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Зайчик
Kit:

Stejně to máš stále blbě. 28tomino si to za domácí úkol opraví.

Nahoru Odpovědět 30.10.2012 20:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Зайчик
Lukáš Hruda (Luckin):

to že tam neni 0 je celkem jedno jenže ty indexuješ 12 a to už je mimo pole poslední prvek má index 11 ne? Měníš prvky 1 - 12 ale pole má prvky 0 - 11, vypíše se 12 hodnot tak jako tak.

 
Nahoru Odpovědět 30.10.2012 20:15
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Čápka
Зайчик:

:D chci pole m[12] <- tohle pole má 13 hodnot né 12 :) přes žádné pole nelezu :`

Nahoru Odpovědět 30.10.2012 20:15
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Зайчик:

Teda doufám, stím že má 13 hodnot žiju už nějaký ten pátek :D a používám to tak tuším i ve článku :D

Editováno 30.10.2012 20:17
Nahoru Odpovědět 30.10.2012 20:17
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:

Podle všeho co o céčku píší na netu a co o něm vím já by to mělo být od 0 do 11. Vypiš tohle:

sizeof(m)/sizeof(int);

Mělo by to vypsat že je tam 12 integerů.

Nahoru Odpovědět 30.10.2012 20:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na Зайчик
Lukáš Hruda (Luckin):

Když deklaruješ pole M[12] tak nemá 13 prvků ale 12, pole je pointer a to číslo v závorkách určuje pro kolik prvků danýho typu se má alokovat paměť. Číslo v hranatý závorce určuje o kolik prvků v paměti se posouváš neboli M[0] je to samý jako *M a třeba M[5] je to samý jako *(M + 5), tzn logicky nemůžeš použít M[12] protože M + 12 je 13. prvek a pro ten už paměť neni alokovaná.

 
Nahoru Odpovědět 30.10.2012 20:21
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Čápka
Зайчик:

Nějak mě matete myslím že to mám to správně, však int pole[12] je to to samé jako

int pole[0];
int pole[1];
int pole[2];
...
int pole[12];

Akorát jsem vynechal nulu kůli dělení.

Nahoru Odpovědět 30.10.2012 20:22
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukáš Hruda (Luckin)
David Čápka:

A céčko vesele hrábne pryč a nikdo ani nic nepozná, dokud se něco někde nepodělá. Řízený jazyk by vyhodil Index out of bounds.

Editováno 30.10.2012 20:23
Nahoru Odpovědět 30.10.2012 20:23
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Зайчик
Člen
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Зайчик:

Hmm to jsou mi novinky ale koukám, když jsem teda překročil pole stále to funguje jak bylo požadováno :@

Nahoru Odpovědět 30.10.2012 20:23
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:

Protože céčko tě nechá psát za hranici pole. Zkoušel jsi ten

sizeof(m)/sizeof(int);

?

Nahoru Odpovědět 30.10.2012 20:24
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Čápka
Зайчик:

Ne už jsem to vypnul ale jdu to samé zkusit v C# nevěřim tomu :D na mě kujete pikle

Nahoru Odpovědět 30.10.2012 20:26
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:

No tak to zase zapni :D C# ti pěkně vyhubuje.

Nahoru Odpovědět 30.10.2012 20:27
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Čápka
Зайчик:

Jojo už na mě křičí :D blbé Céčko pak v tom má člověk akorát bordel :[

Nahoru Odpovědět 30.10.2012 20:30
Коммунизм для нашего будущего!
Avatar
Odpovídá na David Čápka
Lukáš Hruda (Luckin):

Céčko tě nechá dělat co chceš, jak řikam - pole je pointer a přes pointer můžeš sahat do paměti kam chceš. Často se stane že tim přepíšeš data který nemáš a pak program většinou padá, taky se ale nemusí stát nic. Každopádně na tohle si dávat pozor je celkem základní věc asi ve všech jazycích.

 
Nahoru Odpovědět 30.10.2012 20:31
Avatar
Зайчик
Člen
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Зайчик:

Jop já vím, já jsem pole projel už tehdy v Céčku rychle (brnkačka) a Céčko mi to uznalo takže jsem si samozřejmě myslel že je to správně. Aspoň má Tomino aspoň nějaký ten úkol teď :D poupravit pole :p

Nahoru Odpovědět 30.10.2012 20:33
Коммунизм для нашего будущего!
Avatar
Kit
Redaktor
Avatar
Odpovídá na Зайчик
Kit:

Věř tomu, že pole m[12] má indexy prvků v rozsahu 0..11. Když se pokusíš zapsat do "dvanáctého" prvku, tak to zapíše do nějaké jiné proměnné. Někdy to proces přežije, jindy vyhodí záhadnou chybu nebo v nejhorším případě pokračuje s chybou, která se projeví úplně někde jinde.

Nahoru Odpovědět 30.10.2012 20:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Зайчик
Člen
Avatar
Odpovídá na Kit
Зайчик:

Jojo, jsem rád že jste mě upravili měl jsem vždy za to že pole[12] má 13 hodnot dík.

Nahoru Odpovědět 30.10.2012 20:39
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 30.10.2012 20:51
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Lukáš Hruda (Luckin):

V řízených taky pokud děláš dynamický pole, debugger pokud vim neodhalí přetečení pole jehož velikost se určuje za běhu. V řízenym jazyce by se to ale mělo pak nějak ochránit za běhu. V C++ můžeš použít nějakou knihovnu která to šetří za běhu, můžeš si udělat i svojí. V klasickym C si musíš prostě dávat pozor.

 
Nahoru Odpovědět 30.10.2012 21:00
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukáš Hruda (Luckin)
David Čápka:

Tady ale nejde o to kdy ji odhalí, ale že ji vůbec odhalí.

Nahoru Odpovědět 30.10.2012 21:15
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
28tomino
Člen
Avatar
28tomino:

no viem budete sa asi smiat ale este by som potreboval jeden, nechce mi to neak nacitavat !!! Vytvorte program zodpovedajúci softvéru automatu na výdaj nemocničných návlekov. Návleky stoja 1.5€. Užívateľ môže vhadzovať do systému len 0.1, 0.2, 0.5 a 1-eurové mince. Logika automatu sčítava sumu vhodených mincí. Po zadaní požadovanej sumy vypíše hlásenie, aby si užívateľ vzal vydané návleky. Ak zadaná suma presiahne 1.5€, automat vypíše hlásenie, aby si užívateľ vzal návleky a výdavok (hodnotu výdavku vypočítať nemusí).

 
Nahoru Odpovědět 30.10.2012 21:21
Avatar
Odpovídá na David Čápka
Lukáš Hruda (Luckin):

To záleži na tom jak se chová když ji odhalí. Jestli se třeba ukončí aplikace a nebo jenom dělá že nic a přezkočí tu chybnou instrukci, což nevim, nikdy sem to nezkoušel.

 
Nahoru Odpovědět 30.10.2012 21:24
Avatar
Odpovídá na 28tomino
David Jančík [sczdavos]:

A to ses nad tím ani nepozastavil? Nebylo by lepší třeba zkoušet než se ptát? Co je těžkého na tom sčítat hodnoty do té doby, než přesáhnou danou hodnotu? Naprosto primitivní úloha, nemůžeš očekávat, že to za tebe někdo bude dělat, my tě nasměrujeme, rádi ti poradíme, ale musíš nám ukázat snahu.

Nahoru Odpovědět 30.10.2012 21:24
Čím více času dostaneš, tím méně ho máš.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukáš Hruda (Luckin)
David Čápka:

Samozřejmě, že ji ukončí, když dělá nesmysly.

Nahoru Odpovědět 31.10.2012 16:25
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

projeď si podmínky a zkus to sám... a pak nám ukaž příklad já za tebe každý úkol dělat nebudu :) sem přijď až budeš mít konkrétní problém a nebudeš si vědět rady, mrkni se na podmínky http://www.itnetwork.cz/…cka-tutorial a zkus to prosím sám :)

Nahoru Odpovědět 31.10.2012 16:48
Коммунизм для нашего будущего!
Avatar
Odpovídá na David Čápka
Lukáš Hruda (Luckin):

Neni to spíš tak že špatná indexace vyhazuje výjimku a pokud neni zachycená tak se ukončí? Já fakt nevim jenom se ptam, celkem mě to zajimá...

 
Nahoru Odpovědět 31.10.2012 16:57
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukáš Hruda (Luckin)
David Čápka:

Odchytit mohu samozřejmě cokoli.

Nahoru Odpovědět 31.10.2012 17:47
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
28tomino
Člen
Avatar
28tomino:

mate pravdu musim sa to naucit sam, ono to nie je az tak tazke ked clovek rozmysla :) ale mam jednu otazocku ako mam napisat toto do printf() aby mi to vypisalo presne takto: James Bond \ "Agent 007" \ # 150% zaruka # / aj stymi uvodzovkami, lomitkami a krizikmi ???

 
Nahoru Odpovědět 31.10.2012 18:51
Avatar
Odpovídá na 28tomino
Lukáš Hruda (Luckin):

printf("James Bond \\ %cAgent 007%c \\ # 150% zaruka # /",'"','"');

 
Nahoru Odpovědět  +1 31.10.2012 19:12
Avatar
28tomino
Člen
Avatar
28tomino:

aku funkciu je najlepsie pouzit v pripade ked potrebujem nacitavat urcitu hodnotu ??? popripade ako by to malo vyzerat v kode

 
Nahoru Odpovědět 2.11.2012 18:38
Avatar
Odpovídá na 28tomino
Lukáš Hruda (Luckin):

int a;
scanf("%i", &a);

char b;
scanf("%c", &b);

float c;
scanf("%f", &c);

To co je za % je různý podle toho jakej datovej typ načítáš. Tady máš 3 příklady, ostatní si někde najdi já si je nepamatuju. V klasickym C moc nedělam.

 
Nahoru Odpovědět 2.11.2012 18:49
Avatar
Зайчик
Člen
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Зайчик:

%i?
podle mě spíš

int a;
scanf("%d", &a);

s ostatním souhlasím, ještě bych dodal že když máš třeba řetězec znaků tak se to dělá následovně:

char retezec[32];
scanf("%32s", &retezec);
Editováno 2.11.2012 18:59
Nahoru Odpovědět 2.11.2012 18:58
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Nahoru Odpovědět 2.11.2012 18:59
Коммунизм для нашего будущего!
Avatar
Odpovídá na Зайчик
Lukáš Hruda (Luckin):

Já pro načítání int používam v C běžně %i, nevim jestli je v tom nějakej rozdíl. Každopádně programuju hlavně v C++, tam tohle řešit nemusim.

 
Nahoru Odpovědět 2.11.2012 19:04
Avatar
Зайчик
Člen
Avatar
Odpovídá na Lukáš Hruda (Luckin)
Зайчик:

jojo já že od jakživa jsem v C používal pro celé číslo %d

Nahoru Odpovědět 2.11.2012 19:06
Коммунизм для нашего будущего!
Avatar
28tomino
Člen
Avatar
28tomino:

osprevedlnujem sa ja som zle polozil otazku :) mam priklad v kotrom potrebujem nacitavat premenu dajme tomu scanf("%d",&a); do urcitej hodnoty napr. 100,ale zadavat mozem len po 10, tak aku cyklus by tu bolo najlepsie a najednoduchsie pouzit ? do while?? popripade zdrojovy kod ako by to malo vyzerat

 
Nahoru Odpovědět 2.11.2012 19:30
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

Bože nemůžeš se vyjadřovat trošku srozumitelněji? nějaké hodnoty 100 a 10 vůbec nevím co máš na mysli... jestli pole.. nebo co? Co má být výsledek? Chceš načítat hodnoty? Jako že výstup bude :

Zadej hodnotu : 10
Zadej hodnotu : 50
zadej hodnotu : 61

ale ze ta hodnota se nesmí rovnat 100+? Fakt nevím co po mě chceš pokud do pole tak je to takhle :

int pole[100];
for(i = 0; i < 100; i++)
{
    scanf("%d", &a);
    pole[i] = a;
}
Nahoru Odpovědět 2.11.2012 19:39
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Odpovídá na Зайчик
Зайчик:

Pokud chceš dynamickou hodnotu pole tak to musíš přes alokaci pole
http://www.itnetwork.cz/…okace-pameti
Ale pokud to myslíš jinak... tak napiš jak to má vypadat... čeho chceš docílit.. moc jsem to nepochopil
EDIT : Nejlépe sem napiš zadání úkolu to by bylo ideální

Editováno 2.11.2012 19:42
Nahoru Odpovědět 2.11.2012 19:41
Коммунизм для нашего будущего!
Avatar
28tomino
Člen
Avatar
28tomino:

skusim este raz, nejde o pole, ide o to ze neviem kedy ktory cyklus(for, while, do while) mam pouzit, uz nieco mam nakodene len neviem asi podmienky dobre urcit, alebo som tam zly cyklus zvolil
zadanie: Vytvorte program zodpovedajúci softvéru automatu.Užívateľ môže vhadzovať do systému len 0.1, 0.2, 0.5 a 1-eurové mince. Logika automatu sčítava sumu vhodených mincí. Po zadaní požadovanej sumy vypíše hlásenie

 
Nahoru Odpovědět 2.11.2012 19:44
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

Ukaž sem tvůj kód co už máš napsané (jinak použil bych while) hoď sem kód mrknem na to

Nahoru Odpovědět 2.11.2012 19:46
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

Udělal bych to nějak takto

while(konec > 0)
{
    printf("hod minci");
    scanf("%lf", &a");
    if(a == 0.5 || a == 0.1 || a == 0.2 || a == 1)
    {
         // co se stane když mince budou spravně
    }
    else
    {
        // co se stane když mince bude vhozena špatně
        konec = 0;
    }
}
Nahoru Odpovědět 2.11.2012 19:49
Коммунизм для нашего будущего!
Avatar
28tomino
Člen
Avatar
28tomino:

no neak takto to mam aj ja az na to ze ja som tam pchal do while, ale ja potrebujem aby on tie mince scitaval a ked bude suma a<=1.5 tak True, ked suma bude mensia ako 1.5 tak bude pytat dalsiu mincu a ked hodi zlu mincu tak koniec alebo opat vhod mincu

 
Nahoru Odpovědět 2.11.2012 20:05
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    double a,vysledek = 0;
    int konec = 1;
    while(konec > 0)
    {
        printf("Vhod minci- soucet minci je %lf\n",vysledek);
        scanf("%lf",&a);
        if( a == 0.5 || a == 1 || a == 0.1 || a == 0.2)
        {
            vysledek += a;
            if(vysledek >= 1.5)
            {
                konec = 0;
            }
        }
        else
        {
            printf("vhodil jste spatnou minci!\n");
        }
    }
    return 0;
}

Tak to by ti mělo stačit takhle to má podle mě vypadat )) stačí už si to jen upravit

Nahoru Odpovědět  +1 2.11.2012 20:16
Коммунизм для нашего будущего!
Avatar
28tomino
Člen
Avatar
28tomino:

velka vdaka, ako vidim staci trosku vediet co treba spravit a ono to ide, ja som to robil cez Kosice ako sa hovori, budem sa musiet este vela co ucit, inak nevies odporucit neaku dobru literaturu ohladom C, najlepsie pdf, v cestine alebo slovencine

 
Nahoru Odpovědět 2.11.2012 20:22
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

hele projeď si tutorialy co jsem napsal já v jazyce C http://www.itnetwork.cz/…aky-priklady opravdu to píšu co nejsrozumitelněji aby to pochopil opravdu každý. Určitě se tam tohle naučíš a mraky dalšího ale pokud trváš na literatuře tak doporučuju "Jazyk C" to je kniha má dva díly tam jsem se to učil já, ale bohatě ti bude stačit když si prostuduješ tutoriály :) kdybys zase potřeboval poradit tak sem klidně napiš :)

Nahoru Odpovědět  +1 2.11.2012 20:24
Коммунизм для нашего будущего!
Avatar
28tomino
Člen
Avatar
28tomino:

caw, dalo by sa to neak "osetrit" ked zadam ine ako 1,2,3,4 malo by vyhodit varovanie ale on to ignoruje
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,o;
char x;
printf("\n1,Obvod stvorca \n2,Obsah stvorca \n3,Povrch kocky \n4,Objem kocky\nVyber : ");
scanf("%c",&x);
printf("Zadaj stranu 'a' stvorca : ");
scanf("%d",&a);
switch (x)
{
case '1': o=4*a;
printf("Obvod stvorca je : %d",o);
break;
case '2': o=a*a;
printf("Obsah stvorca je : %d",o);
break;
case '3': o=6aa;
printf("Povrch kocky je : %d",o);
break;
case '4': o=aaa;
printf("Objem kocky je : %d",o);
break;
}
if (x==1,x==2,x=­=3,x==4)
{
printf("\nVARO­VANIE\n");
}
return 0;
}

Editováno 3.11.2012 10:29
 
Nahoru Odpovědět 3.11.2012 10:29
Avatar
Odpovídá na 28tomino
Lukáš Hruda (Luckin):

Protože x načítáš jako char ale v tej podmínce to porovnáváš s číslama. Navíc nechápu co mají bejt ty čárky mezi těma podmínkama.

 
Nahoru Odpovědět 3.11.2012 13:22
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

Ošetřuje se to takhle

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i;
    scanf("%d", &i);
    if(i == 1 || i == 2 || i == 3)
    {
        printf("spravne");
    }
    else
    {
        printf("spatne");
    }
    return 0;
}

na čísla používej double,float nebo int char určitě ne...
Laskavě si přečti nějakej tutoriál máš to celé špatně

if (x==1,x==2,x==3,x==4)
{
printf("\nVAROVANIE\n");
}

jednak nevím co jsou ty čárky... na tohle se používá operátor || or (nebo)
a navíc to nedává ani smysl... když bude x 1 nebo 2 nebo 3 nebo 4 odpověď bude varování? Právě že naopak... program bude v pořádku, právě když to bude něco jiného tak to bude špatně.. trošku u toho přemýšlej

Nahoru Odpovědět 3.11.2012 13:29
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

navíc to máš ve switchi a tu podmínku až za tím takže se to nejdřív vypočítá a až pak porovná... na to se používá místo case default a ještě něco

case '3': o=6aa;
printf("Povrch kocky je : %d",o);
break;
case '4': o=aaa;
printf("Objem kocky je : %d",o);
break;

tohle je proboha co? od kdy se násobí stylem o = 6aa? snad i = 6aa;

Nahoru Odpovědět 3.11.2012 13:32
Коммунизм для нашего будущего!
Avatar
Зайчик
Člen
Avatar
Odpovídá na 28tomino
Зайчик:

takhle je to +- správně a už trošku přemýšlej

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int porovnani,strana;
    printf("Zadej delku strany!");
    scanf("%d", &strana);
    printf("Co chces delat? Obvod <1> Obsah <2> Povrch <3> Objem <4> kostky \n");
    scanf("%d", &porovnani);
    switch(porovnani)
    {
        case 1: printf("Obvod je %d", 4*strana);
        break;
        case 2: printf("Obsah je %d", strana*strana);
        break;
        case 3: printf("Povrch je %d", 6*strana*strana);
        break;
        case 4: printf("Objem je %d", strana*strana*strana);
        break;
        default: printf("Zadal si jine cislo nez jsem chtel!");
    }
    return 0;
}
Nahoru Odpovědět  +1 3.11.2012 13:41
Коммунизм для нашего будущего!
Avatar
 
Nahoru Odpovědět 3.11.2012 13:44
Avatar
Зайчик
Člen
Avatar
Nahoru Odpovědět 3.11.2012 13:45
Коммунизм для нашего будущего!
Avatar
28tomino
Člen
Avatar
28tomino:

caw, nechce mi to vyhodit min pola, co tam mam zle?? s maximom mi to ide ked dam int max=0; if(max<a[i])
#include <stdio.h>
#include <stdlib.h>

int main()
{
srand(time(NULL));
int min=100;
int const velkost=100;
int i, a[velkost];
for (i=0; i<velkost; i++)
{
a[i]= -100 + rand() % 200;
printf(" %d \n",a[i]);
}
if(min>a[i])
{
min=a[i];

}
printf("\nMinimum daneho pola je: %d \n",min);

}

 
Nahoru Odpovědět 6.11.2012 17:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 64 zpráv z 64.