IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Zakladni operace - jsem de*il nebo je chyba v zadani

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

Aktivity
Avatar
Neaktivní uživatel:18.7.2017 15:06

Hoj,

začínám se učit C++ a našel jsem jeden příklad na netu.
Zdání je nějak pro mě zmateně napsané...
Nechápu jak na to, protože mi to háže chyby, že prostě nemohu použit int nebo float, atd...
Zde je zadání: https://i.stack.imgur.com/zvBbL.png

Zde můj kód:

//Task 1
int myInt1 = 15, myInt2 = 10;
float myFloat = 12.6;
//Task 1.1
float quotient1, remainder1;
quotient1 = (myInt1 / myInt2);
remainder1 = (myInt1 % myInt2);
printf("Quotient is: %f", quotient1);
printf("\n");
printf("Remainder is: %f", remainder1);

printf("\n");

//Task 1.2
int quotient2, remainder2;
quotient1 = (myFloat / myInt2);
remainder1 = (myFloat % myInt2);
printf("Quotient is: %i", quotient1);
printf("\n");
printf("Remainder is: %i", remainder1);


cin.get();

Dokáže mi s tím někdo prosím pomoct?
Díky

Editováno 18.7.2017 15:07
Odpovědět
18.7.2017 15:06
Neaktivní uživatelský účet
Avatar
Pavel Novák
Člen
Avatar
Odpovídá na Neaktivní uživatel
Pavel Novák:18.7.2017 15:38

tak minimálně by sis to měl přetypovat

quotient1 = (float)(myInt1 / myInt2);
remainder1 = (float)(myInt1 % myInt2);
 
Nahoru Odpovědět
18.7.2017 15:38
Avatar
Odpovídá na Neaktivní uživatel
Marian Benčat:18.7.2017 19:18

To je cvičení imho na to, aby ti ukazali, že se dělení a modulo chová podle operandu... A pak následně jako upozornění na to, že muže % nedojde ke ztrátě přesností.

Nahoru Odpovědět
18.7.2017 19:18
Totalitní admini..
Avatar
Luboš Běhounek Satik:18.7.2017 19:26

Dole ty remainder2 a quotient2 vůbec nepoužíváš, možná bych koukal i tímhle směrem ;)

Nahoru Odpovědět
18.7.2017 19:26
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Neaktivní uživatel:19.7.2017 1:26

Kurňa, postnul jsem špatný kód.
Tady je správný.

//Task 1
int myInt1 = 15, myInt2 = 10;
float myFloat = 12.6;

//Task 1.1
float quotient1, remainder1;
quotient1 = (myInt1 / myInt2);
remainder1 = (myInt1 % myInt2);
printf("Quotient is: %f", quotient1);
printf("\n");
printf("Remainder is: %f", remainder1);

printf("\n");

//Task 1.2
int quotient2, remainder2;
quotient2 = (myFloat / myInt2);
remainder2 = (myFloat % myInt2);
printf("Quotient is: %i", quotient2);
printf("\n");
printf("Remainder is: %i", remainder2);

cin.get();

Používám je, tady je chyba:

invalid operands of types 'float' and 'int' to binary 'operator%'
remainder2 = (myFloat % myInt2);

PS: Můžete mi prosím někdo poradit jak to má být, protože už jsem zmatený :D

Editováno 19.7.2017 1:29
Nahoru Odpovědět
19.7.2017 1:26
Neaktivní uživatelský účet
Avatar
Pavel Novák
Člen
Avatar
Odpovídá na Neaktivní uživatel
Pavel Novák:19.7.2017 6:59

Tak druhý pokus bude snad úspěšnější :-)

ale asi tě moc nepotěším - operátor % jde použít jen s integrálními typy (int,short,long)

v čem to píšeš? Visual Studio tě na to upozorní hned jak to napíšeš

 
Nahoru Odpovědět
19.7.2017 6:59
Avatar
Odpovídá na Pavel Novák
Neaktivní uživatel:19.7.2017 7:54

Ono to právě píše, takže je chyba v zadání?

PS: Našel jsem funkci fmod(), ta bere i float.

Nahoru Odpovědět
19.7.2017 7:54
Neaktivní uživatelský účet
Avatar
Zbyňa
Člen
Avatar
Zbyňa:10.8.2017 22:48

Otázka trochu bokem jde to zařídit abych získal zb po dělení i s plovoucí řádovou čárkou tzn nějak takto float result = num1 % num2;
Napište mi sem prosím nejaký ekvivalent děkuji

Editováno 10.8.2017 22:50
 
Nahoru Odpovědět
10.8.2017 22:48
Avatar
Pavel Novák
Člen
Avatar
Odpovídá na Zbyňa
Pavel Novák:11.8.2017 7:45

no to je právě ta funkce fmod()

float num1=3.25;
float num2=2.3;

float result = fmod(num1, num2);
Editováno 11.8.2017 7:45
 
Nahoru Odpovědět
11.8.2017 7:45
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 9 zpráv z 9.