NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Program nelze spustit - špatné závorky?

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Jan Jenda
Člen
Avatar
Jan Jenda:6.11.2017 18:39

Ahoj napsal jsem jednoduchý program. Ale pak sem to celý dal do if, protože když bych zadal záporné číslo, aby to vyhodilo chybu čímž jsem docílil že jsem za vše dal else, Ale program přestal spolupracovt hodinu už do toho koukám a nepřišel jsem na to proč.

/**
* Nazev programu:
*
* Autor: Jan Kratka
*
* Datum: 06.11.2017
*/

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

/*
 *
 */
int main(int argc, char** argv) {
    printf("Jméno: Jan Kratka\n");
    printf("Login: kratka10\n");
    printf("Název úkolu: Úkol č. I\n");

    float v0;
    float v1;
    float t;
    float zrychleni;
    float v;
    float s;



    printf("Zadej počáteční rychlost a koncovou rychlost v kilometrech za hodinu (hodnoty oddelene lomitkem): ");
    scanf("%f/%f", &v0, &v1);
    if (v0 > 0) && (v1 > 0)

    {



    printf("Zadej dobu zrychlování v hodinách ");
    scanf("%f", &t);
    printf("Zadej dobu pro vypocet drahy a okamzite rychlosti 0.5\n");
    zrychleni = (v1 - v0) / t;
    if (zrychleni > 0)
        printf("Pohyb je zrychlený\n");
    else if (zrychleni < 0)
        printf("Pohyb je zpomalený\n");
    else if
        printf("Pohyb je konstatní\n");

    printf("Zrychleni je %fkm/h/^2, ", zrychleni);
    printf(" v0 = %fkm/hn\n", v0);

    v = v0 + zrychleni * 0.5;
    s = 0 + v0 * 0.5 )+( 0,5 * zrychleni *0.5*0.5);



    printf("v(t = 0.50h) = %f\n", v);

    printf("s(t = 0.50h) = %f\n", s);


}

















    return (EXIT_SUCCESS);
}
 
Odpovědět
6.11.2017 18:39
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Jan Jenda
DarkCoder:6.11.2017 19:02

K programu:

if (v0 > 0) && (v1 > 0)

{

chybí vnější závorky

if (zrychleni > 0)
        printf("Pohyb je zrychlený\n");
else if (zrychleni < 0)
        printf("Pohyb je zpomalený\n");
else if
        printf("Pohyb je konstatní\n");

vymaž druhé if u else

s = 0 + v0 * 0.5 ) + (0, 5 * zrychleni *0.5*0.5);

chybí závorka před prvním výrazem

U všech hodnot 0.5 přidej F (0.5F). Jinak pracuješ s hodnotou double

s = (0 + v0 * 0.5 ) + (0, 5 * zrychleni *0.5*0.5);

Ve druhém výrazu používáš operátor čárka namísto hodnoty 0.5

Nepoužívej diakritiku pokud neprovádíš lokalizaci na CZ

Editováno 6.11.2017 19:02
Nahoru Odpovědět
6.11.2017 19:02
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Jan Jenda
Člen
Avatar
Jan Jenda:6.11.2017 23:55

Super moc děkuji za pomoc, ale nechápu to první. Závorky začíná je tam prakticky celý program a hned pod ním jí zase uzavřu {}, ale nic pořád hází chybu..

 
Nahoru Odpovědět
6.11.2017 23:55
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Jan Jenda
DarkCoder:7.11.2017 0:25

Není zač. Chyběly vnější kulaté, nikoli složená závorka, tu máš za posledním printf().
Takto:

if ((v0 > 0) && (v1 > 0))
{
Nahoru Odpovědět
7.11.2017 0:25
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
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 4 zpráv z 4.