BAR_PC פורסם 2020 בנובמבר 29 מחבר Share פורסם 2020 בנובמבר 29 (נערך) ציטוט של af db creid רק רגע - כלומר כל התאים במערך מתחלקים בו? כאילו מצד שבכל התאים שלפניו קיימים ערכים המחלקים את הערך בתא, ובכל התאים אחריו קיים ערך המתחלק ע"י הערך בתא. למשל בדוגמה שלי כל הערכים לפני 60 אז 60 מחלק אותם וכל הערכים אחרי 60 מתחלקים ב60 נערך 2020 בנובמבר 29 על-ידי BAR_PC ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בנובמבר 29 Share פורסם 2020 בנובמבר 29 טוב. שתי בעיות - אחת, לא מספיק לבדוק לפי הסדר אם השני מתחלק בראשון והשלישי בשני. זה לא ימצא את כל התבניות לדוג' במקרה שלך - 15 לא מחלק את 20, אז הלולאה של divide_left מפסיקה. למרבה הצער, זה ש15 לא מחלק את 20 לא אומר שהוא לא מחלק את 30. למרבה הצער, אין דרך קיצור - תצטרך לבדוק עבור כל איבר במערך את כל האיברים משמאלו ומימינו. שנית, בעיה שלא מופיעה בדוגמה שלך אבל בכל זאת קיימת - התוכנית לא עובדת אם יש שני מספרים שעומדים בקריטריון (אמרת שהיא אמורה להדפיס את הראשון). נסה את הרצף 1 2 4 8 16 32 וזה אמור להדפיס -1. אשאיר לך את זה כתרגיל. אם תצטרך עדיין עזרה אני כאן. ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
BAR_PC פורסם 2020 בנובמבר 29 מחבר Share פורסם 2020 בנובמבר 29 ציטוט של af db creid טוב. שתי בעיות - אחת, לא מספיק לבדוק לפי הסדר אם השני מתחלק בראשון והשלישי בשני. זה לא ימצא את כל התבניות לדוג' במקרה שלך - 15 לא מחלק את 20, אז הלולאה של divide_left מפסיקה. למרבה הצער, זה ש15 לא מחלק את 20 לא אומר שהוא לא מחלק את 30. למרבה הצער, אין דרך קיצור - תצטרך לבדוק עבור כל איבר במערך את כל האיברים משמאלו ומימינו. שנית, בעיה שלא מופיעה בדוגמה שלך אבל בכל זאת קיימת - התוכנית לא עובדת אם יש שני מספרים שעומדים בקריטריון (אמרת שהיא אמורה להדפיס את הראשון). נסה את הרצף 1 2 4 8 16 32 וזה אמור להדפיס -1. אשאיר לך את זה כתרגיל. אם תצטרך עדיין עזרה אני כאן. זה אומר לעשות לולאת פור לכל תא פשוט? או משהו אחר? לגבי השני לא הבנתי.. תודה ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בנובמבר 29 Share פורסם 2020 בנובמבר 29 הממ, אני רואה ששינית את הקוד מאז הפעם האחרונה שהסתכלתי. דבר ראשון, אסור, בתכלית האיסור, לא לעשות return לפונקציה שמחזירה ערך. זה undefined behavior. דבר שני, אין שום שימוש במשתנים divide_l וdivide_r (לא אלו של happend). ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בנובמבר 29 Share פורסם 2020 בנובמבר 29 ציטוט של BAR_PC זה אומר לעשות לולאת פור לכל תא פשוט? אכן. ציטוט של BAR_PC לגבי השני לא הבנתי.. נסה את הרצף שאמרתי. ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
BAR_PC פורסם 2020 בנובמבר 29 מחבר Share פורסם 2020 בנובמבר 29 ציטוט של af db creid אכן. נסה את הרצף שאמרתי. בפונקצייה אחת או לכל תא פונקצייה? בדוק אין קיצור דרך? חח ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בנובמבר 29 Share פורסם 2020 בנובמבר 29 ציטוט של BAR_PC בפונקצייה אחת או לכל תא פונקצייה? בדוק אין קיצור דרך? חח לא הבנתי. ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
BAR_PC פורסם 2020 בנובמבר 29 מחבר Share פורסם 2020 בנובמבר 29 ציטוט של af db creid הממ, אני רואה ששינית את הקוד מאז הפעם האחרונה שהסתכלתי. דבר ראשון, אסור, בתכלית האיסור, לא לעשות return לפונקציה שמחזירה ערך. זה undefined behavior. דבר שני, אין שום שימוש במשתנים divide_l וdivide_r (לא אלו של happend). אין בהם צורך פשוט? ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
BAR_PC פורסם 2020 בנובמבר 29 מחבר Share פורסם 2020 בנובמבר 29 ציטוט של af db creid לא הבנתי. כל הבדיקה של כל תא יהיה בפונקצייה אחת? ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בנובמבר 29 Share פורסם 2020 בנובמבר 29 (נערך) ציטוט של BAR_PC אין בהם צורך פשוט? תסתכל, אתה לא משתמש בהם. ציטוט של BAR_PC כל הבדיקה של כל תא יהיה בפונקצייה אחת? אפשר, או לחלק את זה לפונקציה נפרדת. נערך 2020 בנובמבר 29 על-ידי af db creid ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
BAR_PC פורסם 2020 בנובמבר 29 מחבר Share פורסם 2020 בנובמבר 29 (נערך) ציטוט של af db creid תסתכל, אתה לא משתמש בהם. אפשר, או לחלק את זה לפונקציה נפרדת. סליחה שאני משגע אותך אבל זה קוד יותר טוב או לעשות כבר את מה שאמרת? בעצם עדיין זה מדפיס -1. פה השתמשתי בהם הבנת מה עשיתי? כאילו שמרתי כל פעם על התא שיבדוק את הבאים ואם לא אז שיעבור לתא הבא זה עדיין מדפיס לי -1... //------include section------- #include <iostream> #include <cstdlib> //------std section------- using std:: cin; using std:: cout; using std:: endl; //------const section const int N = 6; // The size you want to set //---prtotypes section---- void read_data (int arr[]); int divide_left(int arr[], int &cell); int divide_right (int arr[], int &cell); int happend(int arr[], int &cell1, int &cell2); /////-----Main------- int main() { int arr[N]; read_data(arr); int cell1,cell2; int found = happend(arr,cell1,cell2); if(found != -1) cout<< cell1; else cout << "-1"; return EXIT_SUCCESS ; } void read_data(int arr[]) { for(int i = 0; i < N; i++) cin >> arr[i]; } int divide_left(int arr[], int &cell) { int divide_l = arr[N]; int j = N -1; for(int i = N -1 ; i >= 0; i--) { if((arr[j] % arr[i-1]) == 0) { divide_l = i; cell = divide_l; } j--; } return cell; } int divide_right (int arr[], int &cell) { int divide_r = arr[0]; int j = 0; for(int i = 1; i < N ; i++) { if ((arr [i + 1] % arr [j]) == 0) { divide_r = i; cell = divide_r; } j++; } return cell; } int happend(int arr[], int &cell1, int &cell2) { int no = -1; int divide_l = divide_left(arr,cell1); int divide_r = divide_right (arr,cell2); if(divide_l == divide_r) return divide_l; else return no; } נערך 2020 בנובמבר 29 על-ידי BAR_PC ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
BAR_PC פורסם 2020 בנובמבר 29 מחבר Share פורסם 2020 בנובמבר 29 היי חבר'ה שיגעתי אותכם ממש אבל מרגיש בודד בנושא ואין לי למי לפנות... אם אני משנה את התנאים כאן: if(found != -1) cout<< cell1; else cout << "-1"; לככה: if(found != -1) cout << "-1"; else cout<< cell1; אז בדוגמה 180 120 60 30 20 15 הפלט 3 שזה תקין אבל שאין אז הוא לא מוציא -1 מישהו בבקשה יכול להסביר לי מדוע? המון תודה ושוב סליחה ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
Jabberwock פורסם 2020 בנובמבר 29 Share פורסם 2020 בנובמבר 29 ציטוט של BAR_PC סליחה שאני משגע אותך אבל זה קוד יותר טוב או לעשות כבר את מה שאמרת? בעצם עדיין זה מדפיס -1. פה השתמשתי בהם הבנת מה עשיתי? כאילו שמרתי כל פעם על התא שיבדוק את הבאים ואם לא אז שיעבור לתא הבא זה עדיין מדפיס לי -1... //------include section------- #include <iostream> #include <cstdlib> //------std section------- using std:: cin; using std:: cout; using std:: endl; //------const section const int N = 6; // The size you want to set //---prtotypes section---- void read_data (int arr[]); int divide_left(int arr[], int &cell); int divide_right (int arr[], int &cell); int happend(int arr[], int &cell1, int &cell2); /////-----Main------- int main() { int arr[N]; read_data(arr); int cell1,cell2; int found = happend(arr,cell1,cell2); if(found != -1) cout<< cell1; else cout << "-1"; return EXIT_SUCCESS ; } void read_data(int arr[]) { for(int i = 0; i < N; i++) cin >> arr[i]; } int divide_left(int arr[], int &cell) { int divide_l = arr[N]; int j = N -1; for(int i = N -1 ; i >= 0; i--) { if((arr[j] % arr[i-1]) == 0) { divide_l = i; cell = divide_l; } j--; } return cell; } int divide_right (int arr[], int &cell) { int divide_r = arr[0]; int j = 0; for(int i = 1; i < N ; i++) { if ((arr [i + 1] % arr [j]) == 0) { divide_r = i; cell = divide_r; } j++; } return cell; } int happend(int arr[], int &cell1, int &cell2) { int no = -1; int divide_l = divide_left(arr,cell1); int divide_r = divide_right (arr,cell2); if(divide_l == divide_r) return divide_l; else return no; } הקוד שלך לא מדפיס לי כלום ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
BAR_PC פורסם 2020 בנובמבר 29 מחבר Share פורסם 2020 בנובמבר 29 ציטוט של Jabberwock הקוד שלך לא מדפיס לי כלום איזה קטע... אז איך לי זה הדפיס אני מבולבל כבר...כי אני שיניתי את התנאי בmain להיות הפוך כלומר found לא שווה -1 אז תדפיס -1 אחרת תדפיס את cell(הודעה למעלה) ושהכנסתי את הדוגמא 180 120 60 30 20 15 זה הדפיס לי 3 אבל מנגד שהכנסתי נגיד 6 5 4 3 2 1 הפלט היה 1 ושהכנסתי 9 0 0 0 0 0 אז הפלט היה ריק תודה ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
BAR_PC פורסם 2020 בנובמבר 30 מחבר Share פורסם 2020 בנובמבר 30 היי עדיין אשמח לעזרה בתרגיל הזה אני לא מבין למה הוא לא מדפיס -1... תודה ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
הצטרפ/י לדיון
בשלב זה תוכל/י להצטרף לדיון, ולאחר מכן להצטרף לקהילה שלנו. אם כבר יש לך חשבון אצלנו, אנא התחבר/י עכשיו על מנת להגיב תחת שם המשתמש שלך.
לתשומת לבך: התגובה תופיע לגולשים לאחר אישור של צוות הנהלת הפורומים.