Advertisement
Guest User

מעגל המתאבדים בשפת C

a guest
Nov 29th, 2016
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.79 KB | None | 0 0
  1. #include<stdio.h>
  2. #define n 8     // גודל המעגל
  3. void main ()
  4. {
  5.     int i,j=0;
  6.     int N[n]= {0} ;             //כולם 0  שזה אומר שהם בחיים
  7.  
  8.     for (i=0;i<(n-1);)          // יעשה את הלולאה פעמיים פחות מגודל המעדל. פעם אחת עבור שהמערך מתחיל מאפס, ופעם שנייה כדי שאת האחרון ישאיר חי
  9.     {
  10.         if(N[j]==0)             // אם נתקלנו באדם חי, עוברים לאדם הבא ו
  11.         {
  12.             i++;  // מוסיפים למונה ההריגות
  13.             if (j<(n-1))  //פונקציית מעבר לאדם הבא עד
  14.                 j++;
  15.             else
  16.                 j=0;      // עד כאן
  17.             for (;N[j]==1;)     {  if (j<(n-1)) j++;     else j=0; }     // אם הבא חי, יעבור לבא בפונקציית המעבר
  18.             N[j]=1;                              // נהרוג
  19.             if (j<(n-1))     j++;     else j=0;   // נעבור לבא בשביל בשביל הלולאה הבאה  עי פונקציית המעבר
  20.  
  21.         }
  22.         else                    // אם האדם הזה היה מת
  23.         {
  24.             if (j<(n-1))  j++;       else j=0;                           // אז נעבור לאדם הבא עי פונקצית המעבר
  25.         }
  26.     }
  27.     for (j=0;N[j]==1;)         //לולאה שסורקת את כל המערך בחיפוש האדם שנותר חי. כל אדם מת עוברים לאדם הבא בשימוש בפונקצית המעבר
  28.     {
  29.         if (j<(n-1))
  30.             j++;
  31.         else
  32.             j=0;
  33.     }                          // אחרי שיצאנו מהלולאה ערך המשתנה שווה למספר האדם החי היחיד שנותר   -כאשר 0 = האדם הראשון
  34.     printf ("%d will live\n",j+1);   // מוסיפים אחד משום שהמערך מתחיל ב 0 אבל התחלנו את העיגול באחד. משלימים עכשיו את הפער
  35.  
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement