פורסם 2009 במרץ 416 שנים שלום לכולם. יש פה איזה שאלה שאני יושב עליה כבר חצי שעה ולא הולך לי. כשניסתי לעשות זה מה שיצא int num_of_people; Console.WriteLine ("enter num of people"); num_of_people = int.Parse(Console.ReadLine()); char[] name = new char[num_of_people]; for (int i = 0; i < num_of_people; i++) { name[i] = char.Parse(Console.ReadLine()); } for (int i=0; i < 3; i++) { Console.WriteLine(name[name.Length - i]); } אבל זה נותן שגיאה. אגב במקום שמות תעשו רק CHAR כי STRING ירד במיקוד ( ) תודה מראש! [attachment deleted by admin]
פורסם 2009 במרץ 416 שנים קודם כל, לא הבנתי מה ניסית לעשות בלולאה השנייה (מאיפה הבאת את המספר 3?)דבר שני, יעזור אם תגיד מה השגיאה.דבר שלישי, יש לך שגיאה בלולאה השנייה - שים לב שבאיטרציה הראשונה, אתה למעשה מבצע:Console.WriteLine(name[name.Length]);(כי i==0)וזו שגיאה, כי כשניגשים למערך אז מותר לגשת מ-0 ועד לאורך המערך פחות 1 (כלומר אם המערך בגודל 10, אז אתה יכול לגשת לתאים במקומות 0 עד 9, ולא 1 עד 10).
פורסם 2009 במרץ 416 שנים פיתרון אפשרי : (פתרתי גם בשבילי )Console.WriteLine("How many tourists?"); int tourists = int.Parse(Console.ReadLine()); char[] tourOrder = new char[tourists]; int i; char temp=','; for (i = 0; i < tourOrder.Length; i++)//קליטת נתונים { Console.WriteLine("Insert the char of tourist number : {0}", i + 1); tourOrder[i] = char.Parse(Console.ReadLine()); } i = 0; for (int minute = 1; minute < 75; minute++)// שעה ורבע שווה 75 דקות מן הסתם/ מתחילים מ1 כי 0 לא טוב { if(minute%20==0)//רק אם עברו 20 דקות אז להחליף מקום { temp = tourOrder[i]; for (int j = 0; j < tourOrder.Length-1; j++)//לולאה שמחליפה כל אות באות שאחריה { tourOrder[j] = tourOrder[j + 1]; } tourOrder[tourOrder.Length - 1] = temp; //העברה של האות הראשונה למקום האחרון } } Console.WriteLine(); for (i = 0; i < tourOrder.Length; i++) //לולאה שמדפיסה Console.Write(tourOrder[i]); Console.WriteLine();
פורסם 2009 במרץ 616 שנים הפתרון שלך יפה ונכון לטעמי...רק שיניתי דבר שנראה לי מיותר:Console.WriteLine("How many tourists?"); int tourists = int.Parse(Console.ReadLine()); char[] tourOrder = new char[tourists]; int i; char temp=','; for (i = 0; i < tourOrder.Length; i++)//קליטת נתונים { Console.WriteLine("Insert the char of tourist number : {0}", i + 1); tourOrder[i] = char.Parse(Console.ReadLine()); } i = 0; for (int order = 1; order <= 3; order++)// שעה ורבע שווה 75 דקות מן הסתם/ מתחילים מ1 כי 0 לא טוב { temp = tourOrder[i]; for (int j = 0; j < tourOrder.Length-1; j++)//לולאה שמחליפה כל אות באות שאחריה { tourOrder[j] = tourOrder[j + 1]; } tourOrder[tourOrder.Length - 1] = temp; //העברה של האות הראשונה למקום האחרון } Console.WriteLine(); for (i = 0; i < tourOrder.Length; i++) //לולאה שמדפיסה Console.Write(tourOrder[i]); Console.WriteLine();-שים לב שהדבר היחידי שעשיתי, זה לשנות את הלולאה השניה, כך שתתבצע 3 פעמים, ומחקתי את התנאי המיותר מאחר וידוע לנו שהטיול נמשך כשעה ורבע,ושכל 20 דקות מתחלף הסדר - כלומר, בשעה ורבע, מתחלף הסדר 3 פעמים.במידה והיינו צריכים לקלוט את זמן הטיול, הגבול העליון של הלולאה השנייה פשוט היה time / 20.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.