עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

++c בעיה בהדפסת double

Featured Replies

פורסם

הפלט של התכנית הבאה אמור להיות מספר לא שלם, אבל כל הזמן מודפס לי 0 או 1.

כשעשיתי debug הפלט היה נכון - מספר לא שלם.

למה זה קורה?

איך אפשר לפתור את הבעיה?

אגב,

כשהורדתי את השורה

srand((unsigned)time(0));

מהפונקציה randomNumber זה כן עבד כמו שצריך.

מה הקשר?

int randomNumber(){
srand((unsigned)time(0));
return rand()%3+1;
}


void game(int numOfAttempts){
double count1 = 0, count2 = 0, choice;
for( int i = 0; i < numOfAttempts; i++){
choice = randomNumber();
if(choice == 1) count1++; //1 is the door with the car;
else{ //choice = 2 or choice = 3;
count2++;
}
}
double noChange = count1/((double)numOfAttempts);
double change = count2/((double)numOfAttempts);
cout <<"When not changing the selection: "<< noChange<< endl;
cout <<"When changing the selection: "<< change<< endl;
}
int _tmain(int argc, _TCHAR* argv[]){
game(10000);
return 0;
}





פורסם
  • מחבר

בגלל זה כן הוספתי את (...)srand (ואת כל ה include'ים שצריך)

אבל דווקא זה מה שעשה (כנראה) את הבעיה.

שכזכור היא לא המספרים, אלא השבר שלא מודפס.

פורסם

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

הפתרון הוא לקרוא ל-srand פעם אחת בתחילת התכנית (ב-main), ולא בפונקציה randomNumber.

פורסם
  • מחבר

באמת זה מה שעשיתי בסוף,

אבל למה בdebug זה כן עבד כמו שצריך?

פורסם

כי ב-debug עובר מספיק זמן בין קריאות עוקבות ל-randomNumber. באופן שבו קראת ל-srand, מנגנון הרנדום של התוכנה מאותחל מהשעה הנוכחית. אם לא עובר מספיק זמן בין קריאות עוקבות לפונקציה, אז הוא יאותחל כל פעם מאותה השעה (כי השעון במחשב לא הספיק להתחלף).

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.