Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 12. 10. 2015 17:37

StupidMan
Příspěvky: 737
Reputace:   
 

C-čko (funkce While)

Dobrý den,

mám tady jeden příklad a potřeboval bych s tím poradit.

Zadani:
Program načte dvě celá čísla A a B. Pokud je B rovno nule, požaduje nové načtení, dokud neni B nenulové. Potom vypise podil A/B a zbytek po delení A%B.

ja to mam zatim napsany jenom takhle a dal uz nvm:

#include <stdio.h>
#include <stdiob.h>
  int mai() {
     int a; int b; int c; int d;
     c=a/b;
     d=a%b;
     scanf ("%d", &a);
     scanf ("%d", &b);
     while (b !=0) {printf ("%d, %d", c, d,)

a dal uz nvm jakto napsat...

Offline

  • (téma jako vyřešené označil(a) StupidMan)

#2 12. 10. 2015 18:14

byk7
InQuisitor
Příspěvky: 4713
Reputace:   221 
 

Re: C-čko (funkce While)

1) Počítáš hodnoty $\texttt{c,d}$, ale přitom nevíš, co je v proměnných $\texttt{a,b}$, v nich může být uloženo úplně cokoliv. Proto musí načtení hodnot $\texttt{a,b}$ předcházet výpočtu hodnot $\texttt{c,d}$.

2) Výpočet bude mít smysl, pokud $$\texttt{b}$ bude různé od nuly, proto je toto nutné nějak ošetřit. Ty jsi použil while cyklus, což je rozumné, ale udělal jsi to blbě. Mělo by to být takto:

Code:

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

while(b==0){
   scanf("%d", &b);
}

c=a/b;
d=a%b;

printf(...); //atd.

Prostě je nutné dodržovat nějaké pořadí kroků, to je vše. :-)


Příspěvky psané červenou barvou jsou moderátorské, šedá je offtopic.

Offline

 

#3 12. 10. 2015 18:52 — Editoval StupidMan (12. 10. 2015 20:14)

StupidMan
Příspěvky: 737
Reputace:   
 

Re: C-čko (funkce While)

$$↑ byk7:

aha, dobře děkuji.
Takže takhle je to dobre?

#include <stdio.h>
#include <stdiob.h>

  int mai() {
     int a; int b; int c; int d;
     printf ("zadej hodnotu A\n");
     scanf ("%d", &a);
     printf ("zadej hodnotu B\n");
     scanf ("%d", &b);

     while (b==0) {                           
         scanf ("%d", &b);                       - scanf v tomto případe nacte nahodne cislo?
         }

      c=a/b;
      d=a%b; 

      printf ("podil je %d, zbytek je %d\n", c, d);
  } (pridano)

Offline

 

#4 12. 10. 2015 19:14

byk7
InQuisitor
Příspěvky: 4713
Reputace:   221 
 

Re: C-čko (funkce While)

Ano, to už by mělo fungovat, jen

1) má to být funkce main,
2) scanf nenačte náhodné číslo, ale číslo, které zadá uživatel,
3) funkce main musí něco vracet (např. $\texttt{return 0;}$),
4) a jako taková musí být ukončená složenou závorkou.


Příspěvky psané červenou barvou jsou moderátorské, šedá je offtopic.

Offline

 

#5 12. 10. 2015 20:16 — Editoval StupidMan (12. 10. 2015 20:17)

StupidMan
Příspěvky: 737
Reputace:   
 

Re: C-čko (funkce While)

↑ byk7:

jest bych chtel zeptat,
bod 3) u tady toho bodu nerozumim. Musim return 0 nekam napsat?

Offline

 

#6 12. 10. 2015 20:35

byk7
InQuisitor
Příspěvky: 4713
Reputace:   221 
 

Re: C-čko (funkce While)

↑ StupidMan:

Ano, to má být

Code:

int main(){

   ...

   return 0;

}

Musí to tam být 'main' je funkce typu 'int' a jako taková musí vracet celočíselný výsledek. Proč zrovna nula, no to nevím :-)


Příspěvky psané červenou barvou jsou moderátorské, šedá je offtopic.

Offline

 

#7 12. 10. 2015 20:54

StupidMan
Příspěvky: 737
Reputace:   
 

Re: C-čko (funkce While)

↑ byk7:
ok, dekuji.

Offline

 

#8 13. 10. 2015 16:26

Xellos
Příspěvky: 524
Škola: MFF CUNI, Bc. (13-16)
Reputace:   36 
 

Re: C-čko (funkce While)

↑ byk7:

V sucasnosti v C/C++ netreba pisat do mainu return 0, ono si to automaticky domysli. Vid https://ideone.com/j8mCie

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson