פורסם 2010 ביולי 1915 שנים for (int i=0;i<arr.length-i;i++){ if (arr[i]<arr[i+1]) { ans=true;נגיד שהמערך הוא 1,2,4,3למה זה לא עובד לי כמו שצריך?
פורסם 2010 ביולי 1915 שנים אין הצהרה על המערךאין הצהרה על המשתנה ansאין סוגריים לסיום בלוקים.ובכלל לא נרשם באיזו שפה אתה עובד.
פורסם 2010 ביולי 1915 שנים מחבר אין הצהרה על המערךאין הצהרה על המשתנה ansאין סוגריים לסיום בלוקים.ובכלל לא נרשם באיזו שפה אתה עובד.סתם נתתי קוד חלקי , מדובר בגאווה.הינה הקוד המלאimport java.util.Scanner;public class targil15 { static boolean order (int arr[]) { boolean ans=false; for (int i=0;i<arr.length-i;i++){ if (arr[i]<arr[i+1]) { ans=true; } else ans=false; } return ans; } static Scanner reader=new Scanner(System.in); public static void main(String[] args) { int[]arr={1,2,4,3}; boolean ans=order(arr); System.out.println(ans); }}
פורסם 2010 ביולי 1915 שנים for (int i=0;i<arr.length-i;i++){שמת לב שהלולאה רצה עד מחצית מאורך המערך?עכשיו שים לב לעוד משהו.אתה כתבת לולאה אבל לא משנה מה יקרה בה, תמיד הבדיקה האחרונה שלך תכריע.מה שאתה צריך זה בריחה, אם אתה מוצא שני איברים שלא ממויינים, תבצע החזרה של ערך שקרי.במידה וסיימת לעבור על כל המערך, ולא מצאת שקר (כלומר סיימת את הלולאה) תחזיר ערך אמת.
פורסם 2010 ביולי 1915 שנים מחבר למה רצה עד חצי מערך? היא רצה עד שI=3 ואז משווה בסוף הלולאה בין ARR[3]<ARR[4כמו כן שינתי את הסדר של האמת והשקרimport java.util.Scanner;public class targil15 { static boolean order (int arr[]) { boolean ans=true; for (int i=0;i<arr.length-i;i++){ if (arr[i]>arr[i+1]) { ans=false; } else ans=true; } return ans; } static Scanner reader=new Scanner(System.in); public static void main(String[] args) { int[]arr={1,2,4,3}; boolean ans=order(arr); System.out.println(ans); }}
פורסם 2010 ביולי 1915 שנים היא רצה עד i<arr.length-ii=0<arr.length-i=4 אמת מתקייםi=1<arr.length-i=3 אמת מתקייםi=2<arr.length-i=2 שקר הלולאה נגמרתi=3<arr.length-i=1שינית אבל עדיין רק הבדיקה האחרונה תעבוד כי זה בתוך הפור[br]פורסם בתאריך: 19-07-2010, 21:16:57תנסה משהו כזה static boolean order (int arr[]) { for (int i=1;i<arr.length;i++){ if (arr[i-1]>arr[i]) { return=false; } } return true; }
פורסם 2010 ביולי 1915 שנים מחבר לא ממש הבנתי.. ותראה שיניתי את הבדיקה של ה< בקוד האחרון שלי..בכל מקרה לפי איך שאני רואה את זה הבדיקה נעשת ככה:האם 1 גדול מ2 לאהאם 2 גדול מ4 לאהאם 4 גדול מ3 כן וכאן ANS =FALSE והוא אמור פשוט לצאת ולסיים לא? אם לא אז אין אני עושה שכן יצא ויסיים? ניסיתי להוסיף לו בתנאי של הלולאה &&ANS=FALSE לתנאי סיום אבל עדיין לא ממש עובד לי כמו שצריךזה גם לא עבד בקוד שהצאת..
פורסם 2010 ביולי 1915 שנים תיקנתי את הפונקציה שהצעתיקודם היה return=false בטעות static boolean order (int arr[]) { for (int i=1;i<arr.length;i++){ if (arr[i-1]>arr[i]) { return false; } } return true; }
פורסם 2010 ביולי 1915 שנים מחבר זה אכן עובד..מעניין אותי לדעת באיזה דרך אפשר לעשות את ההשוואות בין I לI+1 ? אני תמיד אוהב להשתמש בשיטות שרצות קדימה ולא אחורה
פורסם 2010 ביולי 1915 שנים אתה יכול לעשות אם תשים בלולאהi<arr.length-1ולא מה שרשמת קודם i<arr.length-iאבל מדובר על תוספת של פעולות חשבוניות מיותרות
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.