לא מבין את התוכנית

eshedr

New member
לא מבין את התוכנית

אני לומד מהספר ++C בקלות של הוד עמי. נתקלתי באיזה קוד ואני לא מציח להבין אותו:
#include <iostream.h> void show_big_and_little(int a, int b, int c) { int small=a; int big=a; if (b>big) big=b; if (b<small) small=b; if (c>big) big=c; if (c<small) small=c; cout <<"the biggest value is " <<big<<endl; cout <<"the smallest value is " <<small<<endl; } void main (void) { show_big_and_little (1,2,3); show_big_and_little (500,10,-500); show_big_and_little (1001,1001,1001); }​
מישהו יכול להסביר לי איך התוכנית יודעת איזה מספר הוא הכי גדול ואיזה הכי קטן? הבנתי שהיא משווה ל-a אבל לא בדיוק הבנתי איך היא יודעת את זה. הרי אם b מ-a איך אני יכול לדעת שהוא הכי גדול ולא c הכי גדול? תודה eshedr
 

HaRmosh

New member
זה די פשוט:

התוכנית מניחה ש-a הוא הכי גדול והכי קטן, ולכן שמה את ערכו ב-big ו-small. לאחר מכן היא מנסה ע"י השוואות לסתור את ההנחה - כלומר לבדוק האם b או c קטנים מ-small או גדולים מ-big, ומעדכנת את ערכי המשתנים big ו-small בהתאם. מקווה שהייתי ברור...
 
למעלה