NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.
Avatar
David Švec
Člen
Avatar
David Švec:26.1.2018 15:39

Zdravím,
mám takovou blbou otázku.. :) ..Proč když načítám znak na konci programu, tak tam musím dát dvakrát scanf?
Když to tam mám pouze jednou, tak to nefunguje. Předem děkuji za rady.
Přikládám kód. :)

#include <stdio.h>
#include <stdlib.h>
#define PI 3.14159265


/*
 *
 */
int main(int argc, char** argv) {
    double r;
    char pokracovat;
    do
    {
        printf("Zadej poloměr kružnice/kruhu (cm): ");
        scanf("%lf", &r);
        if (r <= 0)
        {
            printf("Haha.. jsem chytřejší než ty :), PS: poloměr nemůže být záporný nebo roven nule.");
        }
        else
        {
            printf("Obvod kružnice s poloměrem %g cm : %g cm\n", r, 2 * r * PI);
            printf("Obsah kruhu s poloměrem %g cm : %g cm^2", r, PI * r * r);
        }
        printf("\nDalší příklad? [A/N]");
        scanf("%c", &pokracovat); //Tohle je ta část
        scanf("%c", &pokracovat);
    } while (pokracovat == 'A');
    return (EXIT_SUCCESS);
}
 
Odpovědět
26.1.2018 15:39
Avatar
Odpovídá na David Švec
Matúš Olejník:26.1.2018 16:00

Je to kvôli tomu že ak zadáš znak a potom stlačíš enter tak scanf načíta ten enter a teda podmienka neplatí zmeň to na

scanf(" %c", &pokracovat)
Editováno 26.1.2018 16:00
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
26.1.2018 16:00
/* I am not sure why this works but it fixes the problem */
Avatar
David Švec
Člen
Avatar
Odpovídá na Matúš Olejník
David Švec:26.1.2018 16:08

Aha, už to funguje. Děkuji moc. :)

 
Nahoru Odpovědět
26.1.2018 16:08
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 3 zpráv z 3.