10-02-2015, 12:29
|
|
|
|
חבר מתאריך: 12.04.06
הודעות: 2,021
|
|
יש לך המון המון המון שגיאות בקודים שפירסמת.
אני חושב שהכל מתחיל ונגמר בהבנה לוגית של מה זה מערך, אז אני בעיקר ממליץ לך לעבור שוב על החומר ולהבין את הנושא.
הסבר כללי -
מערך הוא משתנה שמסוגל להכיל כמות מסויימת של ערכים מאותו סוג (int, char וכדומה).
כל מערך יכול להכיל כמות מסויימת שמוגדרת בעת יצירת המערך.
לדוגמא מערך מסוג int בגודל 5, יוכל להכיל עד 5 מספרים שלמים מסוג int.
כדי לבחור נתון מתוך המערך, פונים אליו לפי מיקומו הסידורי בתוך המערך.
בניגוד לחשבון, בתוכנה כאשר מתחילים לספור - מתחילים מ0.
לכן, אם נגדיר לדוגמא את המערך הבא:
קוד:
int numbers[5] = {10,17,-3,6,-12};
נוכל לפנות לכל אחד מהערכים בצורה הבאה:
קוד:
numbers[0] = 10
numbers[1] = 6
numbers[2] = -3
numbers[3] = 17
numbers[4] = -12
שים לב!
הערך שנימצא באיבר הראשון (שמספרו הסידורי 0 וערכו 10) הוא אינו הערך הקטן ביותר במערך! (שאנחנו יודעים שבדוגמא זאת הוא -12).
באותו אופן, לא האיבר השני (שמספרו הסידורי 1 וערכו 6) ואפילו לא האיבר האחרון (שמספרו הסידורי 4 וערכו -12) הם אינם הערכים הגדולים ביותר במערך!
הערך הקטן ביותר שנמצא במערך הוא -12 (מינוס שתים-עשרה), והוא נמצא בתא שמספרו הסידורי 4!
הערך הגדול ביותר שנמצא במערך הוא 17, והוא נמצא בתא שמספרו הסידורי 3!
וזו התשובה לשאלה השניה שלך.
מתוך קבוצת ערכים במערך, לאו דווקא התא הקטן ביותר מכיל את הערך הנמוך ביותר, ולהיפך.
לכן, בקוד המוגמר שהבאת לשאלה - איתחלו את min לאיבר הראשון, כי בתור התחלה יצאו מהנחה שהוא האיבר הקטן ביותר. הלולאה שבהמשך תפקידה לקבוע האם יש ערך קטן יותר או לא.
באותו אופן, יצאו מתוך הנחה שאולי האיבר הראשון הוא דווקא המספר הגדול ביותר במערך, ואיתחלו את max בערך שלו. הלולאה בהמשך, תבדוק האם יש ערך גדול יותר או לא.
* כל הקוד של שאלה 1 שלך מלא בטעויות ולכן אני לא אתייחס אליו.
אם הבנת את מה שהסברתי עד עכשיו, אתה תבין גם איך לפתור נכון את שאלה 1. *
_____________________________________
|