עבור לתוכן

איך עושים דבר כזה?? בעיה ב-C.

Featured Replies

פורסם

היום היה לי מבחן במחשבים.. (אני חדש במגמה..)

קיצר היה זבל לאללה..

היה לנו תרגיל, שהוא דיי פשוט, הוא היה כזה:

בנה תוכנית אשר תקלוט מטריצה בגודל 10X10 ותדפיס את המספר המינימלי בכל עמודה באלכסון הראשי של המטריצה.

לדוגמה מטריצה בגודל 4X4:

לפני

5  7  2  6

9  1  4  5

2  0  9  7

6  5  7  3

אחרי

5  7  2  3

9  1  2  5

0  9  7

2  5  7  3

כמו שאתם רואים להבין את זה, היה פשוט.. (למשל 3 הוא המספר הכי קטן בעמודה הראשונה וכו') אז איך עושים דבר כזה :\

בתודה מראש!

פורסם

שתי לולאות

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

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

פורסם

אתה לא צריך

אתה עושה כאילו אתה מחפש את המינימום במערך חד מימדי, כאשר האיברים בו הם a(i, i)


int a[10][10], i;
int min;
min = a[0][0];
for(i=1;i<10;i++)
if(a[i][i]<min)
min = a[i][i];

פורסם

אתה מודע לזה שלחפש מינימום במערך חד מימדי זה לרוץ בלולאה ::)

פורסם

אתה לא צריך

אתה עושה כאילו אתה מחפש את המינימום במערך חד מימדי, כאשר האיברים בו הם a(i, i)


int a[10][10], i;
int min;
min = a[0][0];
for(i=1;i<10;i++)
if(a[i][i]<min)
min = a[i][i];

אתה עובד אם ללולאה אחת שרצה N פעמים במקום שתי ללולאות שירוצו N*N פעמים.....מה עדיף?

פורסם

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

פורסם

אה.. אופס.. חשבתי שצריך להציג את המספר המינימלי באלכסון.


for(i=0;i<3;i++)// עובר על העמודות
{
min = arr[0][i];// -
for(j=1;j<3;j++)// |_ חיפוש המינימום
if(arr[j][i]<min)// |
min = arr[j][i];// -
arr[i][i] = min;//שם את המינימום באלכסון

}

כאשר הסוגריים הראשונות מייצגות את השורה

והשניים מייצגות את העמודה

(תלוי איך אתה קולט)

התשובה הנכונה

יש כאן 2 לולאות, אחת מקוננת בשניה.

עבור כל עמודה את מוצא את המינימום שלה, ושם את מה שמצאת בתא מתאים.

פורסם

אתה עובד אם ללולאה אחת שרצה N פעמים במקום שתי ללולאות שירוצו N*N פעמים.....מה עדיף?

לא הבנת

אתה משתמש בפקודה מוכנה שמחפשת מינימום בתוך מערך חד מימדי(האמת לא ידעתי בכלל שיש כזאת אבל שיהיה)

מה ניראה לך יש בתוך הפונקציה הזאת?

נכון מאד...לולאה

נו אתה רואה

בסופו של דבר גם ככה כתבת שתי לולאות(בדיוק מה שאמרתי)

פורסם

צודק

פורסם
  • מחבר

תודה לכולם. :yelclap:

ארכיון

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

דיונים חדשים