מערך דו מימדי

Batel Ratzon

New member
מערך דו מימדי

זה מה שכתבתי

public class matrixInit

{
public static void main (String[]args)
{

int[][]a= { {0,0,1,1,1,1},
{1,0,0,1,0,1},
{0,1,0,1,1,0},
{0,0,0,0,0,0},
{1,1,1,1,0,1},
{0,0,1,1,1,0}

};

System.out.println("number of lines: "+ a.length );
System.out.println("number of columns: "+ a[0].length);
}
public static int sumRow (int[][] a, int row)
{
int sum=0;
for(int col=0; col<a[row].length; col++)
{
sum+= a[row][col];
}
return sum;
if (sum ==0)

}

}
עשיתי ספירה של המספרים שאם כולם 0 יתחיל לבדוק את הטורים
נתקעתי בחלק שבו אני צריכה לצרף לבדיקה טור
אשמח לעזרה
 

Guy Yafe

New member
הפיתרון שלך לא קשור לשאלה

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

שימי לב שאת משתמשת במילה sum וזה לא נכון משום שאת נדרשת לספור ולא לסכום. הטעות הזו לא רק סמנטית משום שאת אכן סוכמת ולא סופרת.
לולאת ה - for שלך עוברת על כל שורה, וסוכמת את הערכים בה, במקום לספור את המופעים של 1.
בפועל, מובטח לך שיש שם רק אפסים ואחדות לכן התוצאה עדיין תהיה נכונה.
לאחר הלולאה יש לך פקודת return, מה שאומר שאת מסיימת את הפונקציה בלי לבדוק את הטור.

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

spambot

New member
שיפור חביב

אם שורת האפסים הראשונה איננה בור, סיים - לא יכול להיות שיש שתי שורות אפסים או יותר וגם בור.
 
למעלה