חידה-ג'אוה

עמוד
מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)
  • מאת
    תגובות
  • #76890
    yoav zilberman
    משתתף

    נתון קטע הקוד הבא בג'אווה:

     

    import java.util.*;
    public class targil18
    {
     static Scanner s=new Scanner(System.in);
     static int peula(char[][]matrix,int x)
     {
      int max=1,sum=1;
      
      char temp;
      for(int i=0;i<=matrix.length-2;i++)
      {
       if(matrix[x]==matrix[x][i+1])
       {
        sum++;
       }
       else
        if(matrix[x]
    !=matrix[x][i+1])
        {
         sum=1;
        }
       max=Math.max(sum,max);
       
      }
      return max;
      
     }
     public static void main(String[]args)
     {
      int max=0,maxindex=0;
      int x,y;
      System.out.println("הכנס גודל שורה ועמודה במערך");
      x=s.nextInt();
      y=s.nextInt();
      char[][]mat=new char[x][y];
      System.out.println("הכנס איברים למערך");
      for(int i=0;i<=x-1;i++)
      {
       for(int j=0;j<=y-1;j++)
       {
        mat
    [j]=s.next().charAt(0);
       }
      }
      
      for(int i=0;i<=mat.length-1;i++)
      {
       System.out.println(+peula(mat,i));
       max=Math.max(max,peula(mat,i));
       if(max==peula(mat,i))
       {
        maxindex=i;
       }
      }
      System.out.println(maxindex);
      
     }
    }

    מה עושה קטע הקוד הנ"ל?

    #78191
    IM26
    משתתף

    שלום יואב,

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

    אני חושב שיש טעות בפונקציה peula בשורה הזאת:

      for(int i=0;i<=matrix.length-2;i++)
    זה התיקון:

      for(int i=0;i<=matrix[x].length-2;i++)

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

    #78189
    yoav zilberman
    משתתף

    שלום רב, פיתרון נכון ויפה!

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

    בברכת חג שמח,

    יואב זילברמן

מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.