פורסם 2011 במרץ 1914 שנים טוב אז ככה יש לי מטלה לבנות תוכנה שתדפיס על המסך 9 ממוצעים - 3 ממוצעים של 10 מס רנדומליים, 3 ממוצעים של 100 מס רנדומליים ו3 ממוצעים של 1000בקיצור בניתי הכל טוב ויפה רק שהתוצאה הסופית יוצאת אותו הדבר כל פעם שאני מריץ...אז אני לא יודע אם זה הבנייה או משהו שקשור לפונקציית rand(); אז אולי יש פה מישהו שיכול להאיר לי את הכיוון לבעיה שלי ?...תודההנה התוכנית#include <stdio.h>#include <stdlib.h>#define R 3#define I1 10int main(){ int sum[3][3]; int i,ione,itwo,c; for(i=0;i<R;i++) for(c=0;c<R;c++) sum[i][c]=0; itwo=I1; for(c=0,i=0;c<R||i<R;c++) { for(ione=0;ione<itwo;ione++) sum[i][c]+=rand(); sum[i][c]/=itwo; if(c==R) { itwo*=I1; i++; c=0; }} itwo=I1; printf("size | average1 | average2 | average3 |\n--------|-------------|-----------|------------|---\n"); for(i=0,c=0;i<R;i++) { printf(" %d | %d | %d | %d |\n",itwo,sum[i][c],sum[i][c+1],sum[i][c+2]); itwo*=I1; } getchar(); return 0; }
פורסם 2011 במרץ 1914 שנים הפונקציה הצאת בעייתי מאט.כי היא לוקחת את המספרים הרנדומאליים מתאריך מסויים. כלומר כל פעם המספרים הם אותו דבר(בזמן ריצה קטן יחסית). המחשב מסיים את התוכנית שלך בשנייה בערךולכן הוא לא מספיק להשנות את המספר הרנדומאלי.תנסה להוסיף את הספריה TIME ואז להוסיף פקודה שחסרה לך.#include <time.h>void main(){srand ( time(NULL) );} עתה אחרי שתאפס את TIME (זאת ש במיין) הפקודה תדאג לשנות את הערך הרנדומאלי. יחד עם זאת ניתן לשנות את הערך כל פעם שאתה מגיע לפקודה זו. ולהציב שם ערכים שונים, בכדי לקבל ערכים שונים.מקווה שעזר
פורסם 2011 במרץ 1914 שנים עתה אחרי שתאפס את TIME (זאת ש במיין) הפקודה תדאג לשנות את הערך הרנדומאלי. יחד עם זאת ניתן לשנות את הערך כל פעם שאתה מגיע לפקודה זו. ולהציב שם ערכים שונים, בכדי לקבל ערכים שונים.טוב,זה לא בדיוק מה שאמרת. srand(time(NULL) פשוט מאתחלת את מחולל המספרים הפסאודו-אקראיים עם השעה הנוכחית (בשניות). כך סביר שתקבל כל פעם תוצאות שונות (אלא אם כן עוברת פחות משנייה בין הרצה להרצה).בלי האתחול, המחולל פשוט מתחיל מאיזו נקודת ברירת מחדל.
פורסם 2011 במרץ 1914 שנים פותח הת'רד: ערוך את ההודעה שלך ועטוף את הקוד בטג קוד (כפתור # ליד הכפתור של הציטוט) כדי שיהיה קריא.
פורסם 2011 במרץ 1914 שנים מחבר תודה רבה על ההסבר...ועוד שאלה קטנה איך אני מחולל השהייה של המסך? אני הכרתי את הפקודה delay() בספריית dos.h אבל זה לא בידיוק הולך לי מסיבה כלשהי יש פנק אחרת אולי? או שאני טועה בספריית מקור?
פורסם 2011 במרץ 1914 שנים אין בשפה פונקציה מובנית שעושה sleep, כלומר זה תלוי במערכת ההפעלה והקומפיילר שאיתם אתה עובד.אם אתה בסביבת windows אז בראש הקובץ צריך:#include <windows.h>ואז אתה יכול לעשותSleep(5000);(שים לב שצריך S גדולה)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.