ABA


"איך מכניסים אברים בצורה אקראית למערך בשפת C"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #13671 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13671
Static
חבר מתאריך 1.7.02
1329 הודעות
   17:16   02.11.06   
אל הפורום  
  איך מכניסים אברים בצורה אקראית למערך בשפת C  
 
   למדנו היום קצת C והראו לנו דוגמה עם הכנסת מספרים בצורה אקראית בין 5-13
לתוך מערך , הנה הדוגמה:

void readToArr(int B,int size) {
int k;
for(k=0;k<size;k++)
B=(5+rand()%9);
}

אני מנסה לעשות את אותו דבר רק שיכניס מספרים בין 40- ל-40
אבל זה לא עובד לי באותה צורה.. מישהו יכול לכתוב לי את הדרך הנכונה לעשות זאת..


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  טוב הצלחתי לבד לא משנה.. Static 02.11.06 19:03 1
     ב-C זה random אם אני זוכר נכון.. באיזה קומפיילר אתה משתמש? Nesher  02.11.06 20:50 2
     אם אני לא טועה הפקודה היא srand Limp Bizkit 03.11.06 01:51 3
         תודה, עובד Static 04.11.06 21:19 4

       
Static
חבר מתאריך 1.7.02
1329 הודעות
   19:03   02.11.06   
אל הפורום  
  1. טוב הצלחתי לבד לא משנה..  
בתגובה להודעה מספר 0
 
   עוד שאלה..

איך אני עושה שמהחשב "יגריל" לי מחדש כל פעם מספרים
בפסקל היתה פעם פקודה שנקראה RANDOMIZE אבל ב C אני לא יודע איך עושים זאת..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   20:50   02.11.06   
אל הפורום  
  2. ב-C זה random אם אני זוכר נכון.. באיזה קומפיילר אתה משתמש?  
בתגובה להודעה מספר 1
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Limp Bizkit
חבר מתאריך 2.9.02
3436 הודעות
   01:51   03.11.06   
אל הפורום  
  3. אם אני לא טועה הפקודה היא srand  
בתגובה להודעה מספר 1
 
   srand(seed):

כשב-seed מכניסים ערך מסויים (לכל ערך שמכניסים מקבלים מספר רנדומלי שונה, לדוגמא תכניס את המספר 61, תקבל את המספר 6 ב-rand, תכניס את המספר 431 תקבל את המספר 1 ב-rand, תכניס עוד פעם 61, תקבל עוד פעם את המספר 6 ב-rand)
לכן אפשר להשתמש בספרייה time.h ולרשום פשוט


srand(time(NULL));

הפקודה הזו גורמת למחשב לקרוא את השעון שלו כדי לקבל את הערך שלו עבור ה-seed אוטומטית
הפונקציה time (עם הערך 0), מחזירה את "זמן לוח השנה" בשניות, הערך הזה עובר המרה למשתנה unsigned מסוג int ומשתמש בערך הזה בתור ה-seed
ככה יוצא שמובטח לך לקבל מספר שונה ל-seed בכל פעם שאתה מריץ את התוכנית וזה יגרום לפונקציה rand להגריל כל פעם מספר אחר

קצת מסובך אני יודע

לעוד הסבר על פוקנצית ה-srand פשוט תבקש

Ask any racer, any real racer. It doesn't matter if you win by an inch or a mile; winning's
winning.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Static
חבר מתאריך 1.7.02
1329 הודעות
   21:19   04.11.06   
אל הפורום  
  4. תודה, עובד  
בתגובה להודעה מספר 3
 
   אחלה.. אני יעבור על הפקודה קצת בGOOGLE..
בגדול עושה בדיוק את מה שרציתי והמון תודה...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net