Entra

View Full Version : [C++]Come verificare se il risultato di una operazione ha resto o no


Mattyfog
17-09-2008, 17:04
Ciao,

come da titolo volevo sapere (non mi ricordo più come si fa!!! :muro: ) a verificare se un una operazione produce un risultato intero o no.

grazie ciao

Vincenzo1968
17-09-2008, 17:14
Ciao Mattyfog,

puoi utilizzare l'operatore modulo % del C/C++ che restituisce il resto.

banryu79
17-09-2008, 17:14
Intendi dire che vuoi sapere se una divisione ha resto?
Puoi usare l'operatore binario modulo: %, restituisce il resto intero della divisione tra due numeri.

esempio:

int a = 10;
int b = 4;

// 10 modulo 4 da come risultato: resto = 2
int resto = 10 % 4;

...

// se il risultato del modulo tra due numeri è zero allora non c'è resto,
// il che significa che il secondo operando è un divisore del primo
if (a%b == 0)
{
// ... b è un divisiore di a e non c'è resto nella divisione
}
else
{
// ... b non è un divisiore di a, la divisione da un resto
}

Ciao :)

robs05
17-09-2008, 17:18
se lavori solo con gli interi il risultato a causa del cast implicito sarà sempre un intero,

int x = 5/2;

x = 2 viene eliminata la parte a destra della virgola

robs05
17-09-2008, 17:23
scusami ma se fai


float a = 10;
float b = 4;

float y = a/b;

cout << a%b << endl; ---> errore '%': l'operando sinistro ha il tipo 'float'. Non valido.



quindi penso sia inutile fare un controllo su operazioni fra interi dato che il risultato sarà sempre intero

correggetemi se sbaglio

banryu79
17-09-2008, 17:26
quindi penso sia inutile fare un controllo su operazioni fra interi dato che il risultato sarà sempre intero

correggetemi se sbaglio
Se non ho capito male lui non vuole sapere il risultato della divisione fra due interi, ma vuole sapere se quella divisione ha resto oppure no, punto.

Mattyfog
17-09-2008, 17:27
banryu79 ha capito quello che intendevo grazie a tutti!!!!!!!

Mattyfog
17-09-2008, 17:48
so k dovrei aprire un'altra discussione ma...
c'è un modo semplice per misurare il tempo di esecuzione di un algoritmo?

||ElChE||88
17-09-2008, 17:56
so k dovrei aprire un'altra discussione ma...
c'è un modo semplice per misurare il tempo di esecuzione di un algoritmo?

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
clock_t start, end;

start = clock();
algoritmo();
end = clock();

cout << (double)(end - start) / CLOCKS_PER_SEC << " seconds" << endl;
return 0;
}