myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Modulo- Operation Erklärung gesucht (https://mygully.com/showthread.php?t=2177911)

RoAcHHcAoR 06.12.10 14:07

Modulo- Operation Erklärung gesucht
 
Hallo alle zusammen , ich habe unter C die sogenannte Modulo-Operation oder auch Divisionsrestberechnung nicht ganz verstanden. Kann mir dabei jemand behilflich sein ?
als einfaches Beispiel (Hoffe das klappt mit der Code Anzeige , nutze es zum ersten mal ;) ) :
Code:

#include <stdio.h>
#include <windows.h>
main(){
     
    int x,y;
       
        printf("x eingeben:");
        scanf("%i",&x);

        printf("y eingeben:");
        scanf("%i",&y);

        printf("\n%i %% %i ist %i",x,y,x%y);
        printf("\n\n");

        system("PAUSE");
        return 0;
}

Wenn x = 15 und y =3 ist ist das Ergebnis 0
bei 16 und 3 ist es 1
bei 17 und 3 ist es 2
und bei 18 und 3 ist es wieder 0

warum es 0 ergibt ist mir klar , aber die 1 und die 2 wollen mir nicht einleuchten , da nach Adam Riese da nicht 1 oder 2 rauskommt.

desweiteren , könnte mir jemand vllcht. noch eine schönere Lösung geben , damit das Fenster aufbleibt , als #include <windows.h> mit anschliessendem system("PAUSE"); ?
wäre wunderbar :) lg RoacHHcaoR

PS: ich hoffe es ist alles verständlich

movpclr 06.12.10 14:24

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Xalir 06.12.10 14:30

Modulo ist eine Ganzzahl-Divison und davon der Rest. Der Rest ist in dem Fall die Summe, die nicht geteilt werden konnte um x als ein Vielfaches von y darzustellen.

15 / 3 = 5 Rest 0

16 / 3 = 5 Rest 1

17 / 3 = 5 Rest 2

Siehe auch [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

RoAcHHcAoR 06.12.10 14:46

Danke schön :)

Zeodos 06.12.10 15:42

ich habe mir das immer gerne anhand einer uhr vorgstellt... 13:00 wird ja auch als 1:00 angezeigt, weil eine Uhr immer 'mod 12' ist

urga 06.12.10 21:36

wird oft benutzt um innerhalb einer for int i schleife für sich wiederholende reihen zu sorgen.
beispiel:
eine html-tabelle mit 31 td items, und alle 3 td eine neue tr.
Code:

#include <stdio.h>
main () {
  int items = 31;
  int tdPerRow = 3;
  int i;
  printf ("<table>\n  <tr>\n");
  for (i = 0; i < items; i++) {
    printf ("    <td>%d</td>\n", i);
    if ((i+1) % tdPerRow == 0 && i+1 < items) {
      printf ("  </tr>\n  <tr>\n");
    }
  }
  printf ("  </tr>\n</table>\n");
}



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.