עזרה בשפת C

dani123411

New member
עזרה בשפת C

שלום
צריך את עזרתכם...
כאשר אני עושה פונקציה שתבחר לי מספר ראנדומלי איך אני ממיר את המספר למערך? (חשוב גם שהמספר הראנדומלי יהיה 4 ספרות)
תודה למי שעוזר
 

BravoMan

Active member
איך באמת?

מערך הוא אוסף תאים בזיכרון שכל אחד מהם שומר ערך כלשהו.
הערך הזה בסופו של יום גם הוא מספר, כי כל דבר במחשב הוא מספר.
&nbsp
אז, מה זה בכלל "להמיר מספר למערך"?
&nbsp
הניחוש שלי הוא, שאמרו לך לשים כל ספרה במספר בתא נפרד במערך ספרות, או להפוך כל ספרה לתו וליצור מהן מחרוזת.
&nbsp
כך או כך, כל מה שאתה צריך זה לולאה ופעולת חילוק ושארית.
בהצלחה!
(ובפעם הבאה נסה להסביר בצורה מובנת מה אתה באמת צריך, כדי שנוכל לעזור לך ברצינות)
 

dani123411

New member
סליחה לא הסברתי כמו שצריך

אני צריך ליצור מערך ראנדומלי של 4 תאים.
אם אפשר ממי שיודע שישלח לי קוד איך אני אמור לכתוב את זה כי ישבתי על זה שעתיים ללא הצלחה
זה יעזור לי מאוד תודה מראש
 

הפרבולה

New member
מה זה "מערך ראנדומלי של 4 תאים"

האם הכוונה להגריל 4 מספרים ( באיזה תחום?) ולשים כל אחד מהם בתא נפרד במערך בגודל 4 ?
או אולי למקם את המספרים 1 2 3 4, ב4 תאים בצורה אקראית ( 24 אפשרויות ) ?
או משהו אחר ?
 

Guy Yafe

New member
מה הכוונה מערך רדומלי?

אם הכוונה למערך שיש בו ארבע תאים (של int?) ובכל אחד מספר רנדומלי, הפתרון די פשוט:
&nbsp
צור מערך בגודל 4
התחל לולאה עם 4 איטרציות
בכל איטרציה הגרל מספר (גגל rand()) ושמור אותו בתא הבא במערך
&nbsp
אם כבר כתבת קוד, פרסם אותו כאן ונדבג.
 

dani123411

New member
מערך ראנדומלי

כן הכונה למערך שיש בו 4 תאים של INT ובכל אחד מספר רנדומלי,
int arr[4];
for(i=0;i<4;i++)
{
מה לעשות כל איטרציה?
&nbsp
 
.................

קודם כל צור מספר אקראי. אני לא זוכר את התחביר של C לזה אבל כמו שאמרו לך - גגל (חפש בגוגל :) )
אח"כ פרק אותו לספרות שלו- איך? העיקרון הוא באמצעות שארית החלוקה ב10:
לדוגמא 6789 - שארית החלוקה בעשר=9 . הפחת את ה9 מהמספר ותישאר עם 678 ואז בצע עליו גם כן שארית חלוקה ב10 וקיבלת 8 וכן הלאה.
שארית החלוקה בעשר נכתבת כך: %10 .לדוגמא- 6789%10 יתן לך 9 .
אז יש לך ספרות של מספר אקראי? יש. עכשיו תכניס אותן למערך איך שבא לך.
תנסה לעשות את זה הכי ישר שיש- בלי להתחכם ובלי ליצור קוד מאגניב, ורק אח"כ אחרי שהצלחת ליצור את היסודות, תנסה ליצור את זה יותר פשוט. לדוגמא- אתה לא צריך להסתבך עם לולאה בהתחלה.
נסה לענות לי על שאלה מכוונת (שבדרך כלל מועילה): באילו משתנים אתה צריך להשתמש ולשם מה?
 

dani123411

New member
אז מה שאתה מתכון

לשים את המספר האקראי בתוך משתנה ואת לפרק את המשתנה עם שארית חלוקה ?
ואז להכניס את הכל המספרים למערך?
גם אופציה שאפשר לנסות....אבל אין אני מכניס את כל המספר ש"פירקתי" למערך? פשוט לעשות num,num1,num2=[]arr ?
 

dani123411

New member
אני צריך

אני צריך ליצור מערך ראנדומלי של 4 תאים ושהמספר בכל תא יהיה ראנדומלי
 

Guy Yafe

New member
עכשיו כשאתה יודע מה זה לגגל....

ספר לנו אם תיתקל בבעיות.
 

dani123411

New member
גיגללתי שלוש שעות

ועדיין לא הבנתי איך לעבור על מערך ראנדומלי
ולכן פניתי לפורום
אז אם מישהו לא יודע או שהפתרון שלו זה להגיד לי לחפש בגוגל תחכסו תודה
 
מה גיגלת?

פרט לכך, מה אתה יודע?
&nbsp
אתה יודע איך יוצרים מערך?
אתה יודע איך עובדים עם מערך?
אתה יודע איך מגרילים מספר?
 

BravoMan

Active member
"עובר"? אתה שוב לא מסביר טוב.

ליצור מערך אתה באמת יודע, כתבת:
int arr[4];
עד כאן טוב.
לעבוד עם המערך אתה כנראה לא יודע, וגם לא להגריל מספר אקראי, כי היית חסרה לך שורה אחת בדיוק:
int i;for (i = 0; i < 4; i++)
arr = rand();

רואה את השורה האחרונה? זה היה כ"כ קשה? איך בילית 3 שעות בגוגל בלי למצוא את זה?
הנה הקישור הראשון שעולה ב-Google כששואלים אותו:
http://stackoverflow.com/questions/12556276/store-and-print-random-numbers-in-an-array-in-c
ושים לב לשאלה עצמה:
https://www.google.co.il/search?q=put+random+number+in+c+array

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

ותודה שהיכרת לי את השיר של יהורם גאון.
 
למעלה