• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

invalid operands of types 'int()' and 'int' to binary 'operator%'

Object Storage Arubacloud
0 głosów
2,302 wizyt
pytanie zadane 7 października 2018 w C i C++ przez maviek14 Nowicjusz (140 p.)
#include <iostream>
#include <time.h>
#include <cstdlib>

using namespace std;

int main()
{
    float p, q;
    int a, b, c;
cout<<"a*x^2+b*x+c"<<endl;
srand(time(NULL));
a=rand%21-10;
cout<<"a: "<<a<<endl;
b=rand%21-10;
cout<<"b: "<<b<<endl;
c=rand%21-10;
cout<<"c: "<<c<<endl;

p=(-1*b)/(2*a);
q=(-1*(b*b-(4*a*c)))/(4*a);
cout<<"Pierwsza wspolrzedna wierzcholka wynosi: "<<p<<endl;
cout<<"Druga wspolrzedna wierzcholka wynosi: "<<q<<endl;
    return 0;
}

Program dla wylosowanych współczynników a, b, c liczy p i q czyli współrzędne wierzchołka paraboli. Błąd pojawia się przy 3 linijkach kiedy chcę przypisać wylosowane liczby współczynnikom a, b i c. Te współczynniki mają być całkowite.

1 odpowiedź

0 głosów
odpowiedź 7 października 2018 przez adrian17 Ekspert (344,860 p.)
a=rand%21-10;

`rand` to funkcja generująca liczby (pseudo)losowe - żeby wywołać funkcję, potrzebujesz nawiasy: rand().

komentarz 7 października 2018 przez maviek14 Nowicjusz (140 p.)
Aj zapomniałem o tych nawiasach.
Dzięki ;)

A możesz wyjaśnić ten błąd, np w jakich jeszcze okolicznościach występuje i co dokładnie oznacza?
1
komentarz 7 października 2018 przez adrian17 Ekspert (344,860 p.)

invalid operands of types 'int()' and 'int' to binary 'operator%'

a=rand%21-10;

Po prawej stronie operatora % jest 21 - liczba. Po lewej stronie jest `rand` - funkcja zwracająca int (jej typ jest zapisywany `int()`). Kompilator mówi, że nie potrafi zrobić dzielenia modulo na tych typach.

komentarz 7 października 2018 przez maviek14 Nowicjusz (140 p.)
Rozumiem: w skrócie % nie może wykonać operacji dzieląc napis przez liczbe

Dzięki za pomoc
1
komentarz 7 października 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Akurat rand to nie jest napis, to nazwa funkcji. Niby drobna różnica, ale jednak istotna. Napis to coś w rodzaju: "rand" (ciąg znaków ujęty w cudzysłowy). smiley

1
komentarz 7 października 2018 przez criss Mędrzec (172,590 p.)

Rozumiem: w skrócie % nie może wykonać operacji dzieląc napis przez liczbe

Nie napis. Funkcja. Nie potrafi podzielić funkcji przez int. 

komentarz 7 października 2018 przez maviek14 Nowicjusz (140 p.)
Ok dziena ;)

Podobne pytania

0 głosów
1 odpowiedź 1,328 wizyt
pytanie zadane 20 października 2018 w C i C++ przez systemXYZ Początkujący (290 p.)
0 głosów
1 odpowiedź 1,488 wizyt
0 głosów
1 odpowiedź 115 wizyt
pytanie zadane 16 kwietnia 2021 w C i C++ przez xxx109 Nowicjusz (160 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...