Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #define n 8 // גודל המעגל
- void main ()
- {
- int i,j=0;
- int N[n]= {0} ; //כולם 0 שזה אומר שהם בחיים
- for (i=0;i<(n-1);) // יעשה את הלולאה פעמיים פחות מגודל המעדל. פעם אחת עבור שהמערך מתחיל מאפס, ופעם שנייה כדי שאת האחרון ישאיר חי
- {
- if(N[j]==0) // אם נתקלנו באדם חי, עוברים לאדם הבא ו
- {
- i++; // מוסיפים למונה ההריגות
- if (j<(n-1)) //פונקציית מעבר לאדם הבא עד
- j++;
- else
- j=0; // עד כאן
- for (;N[j]==1;) { if (j<(n-1)) j++; else j=0; } // אם הבא חי, יעבור לבא בפונקציית המעבר
- N[j]=1; // נהרוג
- if (j<(n-1)) j++; else j=0; // נעבור לבא בשביל בשביל הלולאה הבאה עי פונקציית המעבר
- }
- else // אם האדם הזה היה מת
- {
- if (j<(n-1)) j++; else j=0; // אז נעבור לאדם הבא עי פונקצית המעבר
- }
- }
- for (j=0;N[j]==1;) //לולאה שסורקת את כל המערך בחיפוש האדם שנותר חי. כל אדם מת עוברים לאדם הבא בשימוש בפונקצית המעבר
- {
- if (j<(n-1))
- j++;
- else
- j=0;
- } // אחרי שיצאנו מהלולאה ערך המשתנה שווה למספר האדם החי היחיד שנותר -כאשר 0 = האדם הראשון
- printf ("%d will live\n",j+1); // מוסיפים אחד משום שהמערך מתחיל ב 0 אבל התחלנו את העיגול באחד. משלימים עכשיו את הפער
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement