שאלה ב-C ?

ניק

New member
שאלה ב-C ?

צריך לכתוב תוכנית אשר קולטת מערך סטרינג ומדפיסה אותו בצורה אקראית. יש להשתמש בפונקציה rand שנמצאת בספריה include time.h# את הפונקציה הנ"ל מאתחלים פעם אחת בגוף התוכנית ע"י: ((srand(time(NULL ועל-מנת לקבל מספר בין 0 ל-30 לדוגמה כותבים: rand()%30 אודה מאוד על קבלת פתרון המון תודה מראש !!
 

eyalbd

New member
תראה מה ניסית ואיפה אתה תקוע

ואז יוכלו לתת לך פוש קטן להשלמת הפתרון.
 
דרך אחת

נניח והמערך שלך באורך 30. בחר מספר אקראי בתחום הנ"ל, ושלוף את התו במיקום שהגרלת. נקרא לתו X. "מחק" את X מהמחרוזת, ע"י הצבת האיבר שבסוף המחרוזת במקומו. כעת המחרוזת שלך באורך 29. חזור על התהליך, אך הפעם, אל תשכח שאתה מגריל מספר בתחום של 29 תוים ולא של 30. זה אומר שכאשר תצטרך למחוק את התו הבא, מי שיחליף אותו הוא האיבר ה-29 (שכעת הוא-הוא אחרון במחרוזת). המשך כך עד ש"מחקת" את כל האיברים מתוך המחרוזת.
n=30; while (n>0) j = rand()%n; printf("%d", s[j]); --n; s[j] = s[n]; }​
 

ניק

New member
המון תודות ! ו...שאלה

הבנתי את הרעיון והרבה תודה ניק
 
שאלה??

איפה שאלה? אולי היא פה..... לא. אולי מתחת לחלון... לא. ראיתם במקרה את השאלה הנוספת של ניק?
 

ניק23

New member
שאול שאלתי שאלות רבות ../images/Emo8.gif

ובכן, הסיפור שהיה כך היה: בתחילה היתה לי שאלה, אך תוך כדי כתיבת השאלה בהודעה, צצה לה התשובה, ושוב לא היה לי צורך לשאול, אלא שכותרת הנושא נשארה. אגב, את התרגיל הנ"ל אני צריך להגיש למרצה באונ' עד יום חמישי. תודה רבה על הרעיון ! ניק
 
למעלה