inflatable
New member
שלום
אני צריך קצת עזרה בשעורי הבית שלי בתכנות (C++), ואני מקווה שזה הפורום הנכון לשאול בו. השאלה שניתנה היא בניית תוכנית שתדפיס את המספרים הראשוניים בין 2 למס' שמתקבל כקלט מהמשתמש, אבל זאת לא הבעייה שלי. בניתי את התוכנית הדרושה, והיא אכן מבצעת את הדרוש, אך ממש לפני שהיא מסיימת לרוץ הוא מוציאה לי הודעת שגיאה (מהסוג שאפשר לשלוח למיקרוסופט) וכאשר אני מבטל את ההודעה התוכנית מסתיימת (היא אמורה להסתיים כי דבר זה קורה אחרי שהיא מדפיסה את הפלט שלה). זאת התוכנית: /* ..... * Full Name: Gilad Schwartz * Id No: 021628466 * Group No: 12 * Assignment No: 2, question 4 * ..... * * This program gets a number, num, and prints all of the prime numbers that are smaller or equal * to this number using "Eratosthenes' sieve" */ #include <stdio.h> #define size 1000 void main() { int is_valid[size]; int i,j,num; for (i=1;i<=size;i++) is_valid=1; printf ("Please enter the number you want to check \n"); scanf ("%d", &num); for (i=2;i<num;i++) { if (is_valid) printf ("%5d", i); if (i<(num/2)) for (j=i;j<num;j+=i) is_valid[j]=0; else is_valid=0; } printf ("\n"); }
אני צריך קצת עזרה בשעורי הבית שלי בתכנות (C++), ואני מקווה שזה הפורום הנכון לשאול בו. השאלה שניתנה היא בניית תוכנית שתדפיס את המספרים הראשוניים בין 2 למס' שמתקבל כקלט מהמשתמש, אבל זאת לא הבעייה שלי. בניתי את התוכנית הדרושה, והיא אכן מבצעת את הדרוש, אך ממש לפני שהיא מסיימת לרוץ הוא מוציאה לי הודעת שגיאה (מהסוג שאפשר לשלוח למיקרוסופט) וכאשר אני מבטל את ההודעה התוכנית מסתיימת (היא אמורה להסתיים כי דבר זה קורה אחרי שהיא מדפיסה את הפלט שלה). זאת התוכנית: /* ..... * Full Name: Gilad Schwartz * Id No: 021628466 * Group No: 12 * Assignment No: 2, question 4 * ..... * * This program gets a number, num, and prints all of the prime numbers that are smaller or equal * to this number using "Eratosthenes' sieve" */ #include <stdio.h> #define size 1000 void main() { int is_valid[size]; int i,j,num; for (i=1;i<=size;i++) is_valid=1; printf ("Please enter the number you want to check \n"); scanf ("%d", &num); for (i=2;i<num;i++) { if (is_valid) printf ("%5d", i); if (i<(num/2)) for (j=i;j<num;j+=i) is_valid[j]=0; else is_valid=0; } printf ("\n"); }
מישהו אולי מצליח להבין מה הבעייה? תודה מראש