מעבר לתוכן

מבוא ל-C, ביטויים בוליאנים


markus

הודעות מומלצות

k = ((a>record)+k) || a>record

 

מדוע לא ניתן להשתמש בביטוי בוליאני יחד עם פעולות אריתמטיות כמו בדוגמא למעלה?

יש אפשרות אחרת (ללא שימוש בתנאים if וכו') לרשום ביטוי/ים שקול/ים לשורה המקורית?

תודה!

קישור לתוכן
שיתוף באתרים אחרים

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

 

ספיציפית לגבי השורה, שים לב שהדרך היחידה שהערך החדש של k יהיה false אמ"ם a קטן או שווה ל-record וגם k היה אפס.

קישור לתוכן
שיתוף באתרים אחרים

נכון, אני מקבל שגיאת קומפילציה : error: 'k' is used uninitialized in this function

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

 

לגבי ערך הfalse של K, לא הבנתי למה k חייב להיות 0. במידה ואגף שמאל לא נכון, אגף ימין גם כן לא נכון ואז יוחזר '0' (רצוי).

קישור לתוכן
שיתוף באתרים אחרים

לגבי ערך הfalse של K, לא הבנתי למה k חייב להיות 0. במידה ואגף שמאל לא נכון, אגף ימין גם כן לא נכון ואז יוחזר '0' (רצוי).

 

מה שאתה מתאר זה אופרטור AND. מה שיש לך בקוד הוא אופרטור OR.

קישור לתוכן
שיתוף באתרים אחרים

אוקי, מאה אחוז.

 

יש אולי התייחסות לזה - record = ((a>record) * a) || (record>a) * record

record = ((b>record) *  b|| (record> b* record 

record = ((c>record) *  c) || (record>c) * record

...

ניתן לעשות את זה כדי למצוא מקסימום?

קישור לתוכן
שיתוף באתרים אחרים

הצטרפות לשיח

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

אורח
הוספת תגובה

×   הדבקה כטקסט עשיר.   הדבקה כטקסט רגיל במקום

  מאושרים אך ורק 75 סמייקונים.

×   הקישור שלך מוצמד אוטומטית.   הצגה כקישור במקום

×   תוכן הקודם שלכם שוחזר.   ניקוי עורך

×   You cannot paste images directly. Upload or insert images from URL.

טוען...
×
×
  • יצירת חדש...