עבור לתוכן
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.

בדיקה של מערך ממוין

Featured Replies

פורסם

for (int i=0;i<arr.length-i;i++){
if (arr[i]<arr[i+1]) {
ans=true;

נגיד שהמערך הוא 1,2,4,3

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

פורסם

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

פורסם

אין הצהרה על המערך

אין הצהרה על המשתנה ans

אין סוגריים לסיום בלוקים.

ובכלל לא נרשם באיזו שפה אתה עובד.

פורסם
  • מחבר

אין הצהרה על המערך

אין הצהרה על המשתנה 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);



}

}

פורסם


for (int i=0;i<arr.length-i;i++){

שמת לב שהלולאה רצה עד מחצית מאורך המערך?

עכשיו שים לב לעוד משהו.

אתה כתבת לולאה אבל לא משנה מה יקרה בה, תמיד הבדיקה האחרונה שלך תכריע.

מה שאתה צריך זה בריחה, אם אתה מוצא שני איברים שלא ממויינים, תבצע החזרה של ערך שקרי.

במידה וסיימת לעבור על כל המערך, ולא מצאת שקר (כלומר סיימת את הלולאה) תחזיר ערך אמת.

פורסם
  • מחבר

למה רצה עד חצי מערך? היא רצה עד ש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);



}

}

פורסם

היא רצה עד


i<arr.length-i

i=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;
}

פורסם
  • מחבר

לא ממש הבנתי.. ותראה שיניתי את הבדיקה של ה< בקוד האחרון שלי..

בכל מקרה לפי איך שאני רואה את זה הבדיקה נעשת ככה:

האם 1 גדול מ2 לא

האם 2 גדול מ4 לא

האם 4 גדול מ3 כן וכאן ANS =FALSE והוא אמור פשוט לצאת ולסיים לא? אם לא אז אין אני עושה שכן יצא ויסיים? ניסיתי להוסיף לו בתנאי של הלולאה &&ANS=FALSE לתנאי סיום אבל עדיין לא ממש עובד לי כמו שצריך

זה גם לא עבד בקוד שהצאת..

פורסם

תיקנתי את הפונקציה שהצעתי

קודם היה 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;
}

פורסם
  • מחבר

זה אכן עובד..

מעניין אותי לדעת באיזה דרך אפשר לעשות את ההשוואות בין I לI+1 ? אני תמיד אוהב להשתמש בשיטות שרצות קדימה ולא אחורה

פורסם

אתה יכול לעשות אם תשים בלולאה

i<arr.length-1

ולא מה שרשמת קודם

i<arr.length-i

אבל מדובר על תוספת של פעולות חשבוניות מיותרות

פורסם
  • מחבר

אחלה תודה על העזרה.

ארכיון

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

דיונים חדשים

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.