Gå til innhold

Anbefalte innlegg

jeg sitter her å leser litt c++, og fant ett %-tegn i en tutorualen, men ingen forklaring, kan noen forklare hva det betyr??

 

se under for eksempel på kode:

 

#include <iostream.h>

void odd (int a);
void even (int a);

int main ()
{
 int i;
 do {
   cout << "Type a number: (0 to exit)";
   cin >> i;
   odd (i);
 } while (i!=0);
 return 0;
}

void odd (int a)
{
 if ((a%2)!=0) cout << "Number is odd.\n";
 else even (a);
}

void even (int a)
{
 if ((a%2)==0) cout << "Number is even.\n";
 else odd (a);
}

Lenke til kommentar
Videoannonse
Annonse
det er modulus

modulus setter opp et delestykke, men returnerer ikke svaret, men resten

 

10%9 == 1

3%100 == 0

1005%10 == 5

 

hvis resten av; et tall delt på 2, ikke er 0, er tallet et oddetall, see?

3 % 100 blir 3 (i dataverden :)).

 

Du kan også tenke på resultatet av modulo operasjonen som:

- Trekk høyre tall så mange ganger som mulig fra venstre tall, UTEN at verdien til venstre tall blir mindre enn 0.

- Resultatet er den nye verdien til venstre tall.

 

Eks:

25 % 5 =

20 % 5 =

15 % 5 =

10 % 5 =

5 % 5 =

0 % 5 =

0

 

Edit:

fisket

Endret av hishadow
Lenke til kommentar
Du kan også tenke på resultatet av modulo operasjonen som:

- Trekk høyre tall så mange ganger som mulig fra venstre tall, UTEN at verdien til venstre tall blir mindre enn 0.

Modulus er tallet som er igjen etter dette, altså 0 i eksempelet med 25 % 5.

 

(Synes bare ikke det kom helt tydelig frem av posten, og tenkte jeg skulle supplere litt.)

Lenke til kommentar
det er modulus

modulus setter opp et delestykke, men returnerer ikke svaret, men resten

 

10%9 == 1

3%100 == 0

1005%10 == 5

 

hvis resten av; et tall delt på 2, ikke er 0, er tallet et oddetall, see?

la meg se om jeg skjønte dette:

 

f.eks 1000%5=0, fordi det ikke blir igjen noe

 

og 1004%5=4, fordi 1000/5 går, og da er det igjen 4

 

 

riktig??

Lenke til kommentar

Ja. Om du husker deling på barneskolen, så fikk du helt nederst ofte en rest.

 

Om du gjør akkurat denne operasjonen, uten desimaltall - så er modulusen det du får nederst.

 

forøvrig kan den utrykkes slik (seeiiint!)

[code}

//x % y = z

while (x >= y) {

x = x -y;

}

return x

[/code]

 

altså "trekk y fra x intill x er mindre enn y eller x er lik null".

 

et eksempel:

5 % 2:

5 - 2 = 3

3 - 2 = 1

svaret er 1

10 % 5:

10 - 5 = 5

5 - 5 = 0

svaret er 0

6 % 4:

6 - 4 = 2

svaret er 2

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...