שאלה בנוגע לתוכנית פשוטה ב C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלה בנוגע לתוכנית פשוטה ב C


p-o-i

Recommended Posts

טוב אז ככה יש לי מטלה לבנות תוכנה שתדפיס על המסך 9 ממוצעים - 3 ממוצעים של 10 מס רנדומליים, 3 ממוצעים של 100 מס רנדומליים ו3 ממוצעים של 1000

בקיצור בניתי הכל טוב ויפה רק שהתוצאה הסופית יוצאת אותו הדבר כל פעם שאני מריץ...

אז אני לא יודע אם זה הבנייה או משהו שקשור לפונקציית

rand();

אז אולי יש פה מישהו שיכול להאיר לי את הכיוון לבעיה שלי ?...תודה

הנה התוכנית


#include <stdio.h>
#include <stdlib.h>


#define R 3
#define I1 10

int 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;
}

קישור לתוכן
שתף באתרים אחרים

הפונקציה הצאת בעייתי מאט.

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

ולכן הוא לא מספיק להשנות את המספר הרנדומאלי.

תנסה להוסיף את הספריה TIME ואז להוסיף פקודה שחסרה לך.

#include <time.h>
void main()
{
srand ( time(NULL) );
}

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

מקווה שעזר

קישור לתוכן
שתף באתרים אחרים

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

טוב,זה לא בדיוק מה שאמרת. srand(time(NULL) פשוט מאתחלת את מחולל המספרים הפסאודו-אקראיים עם השעה הנוכחית (בשניות). כך סביר שתקבל כל פעם תוצאות שונות (אלא אם כן עוברת פחות משנייה בין הרצה להרצה).

בלי האתחול, המחולל פשוט מתחיל מאיזו נקודת ברירת מחדל.

קישור לתוכן
שתף באתרים אחרים

תודה רבה על ההסבר...ועוד שאלה קטנה איך אני מחולל השהייה של המסך? אני הכרתי את הפקודה

delay() בספריית dos.h אבל זה לא בידיוק הולך לי מסיבה כלשהי יש פנק אחרת אולי? או שאני טועה בספריית מקור?

קישור לתוכן
שתף באתרים אחרים

אין בשפה פונקציה מובנית שעושה sleep, כלומר זה תלוי במערכת ההפעלה והקומפיילר שאיתם אתה עובד.

אם אתה בסביבת אז בראש הקובץ צריך:

#include <windows.h>

ואז אתה יכול לעשות

Sleep(5000);

(שים לב שצריך S גדולה)

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...