עבור לתוכן

עזרה בתרגיל פשוט ביותר בשפת C

Featured Replies

פורסם

שלום,

אמרול י בבקשה, מה הוא ערך המשתנה b?


int a=7,b=8,c=-2;
for (i=c;i<2:i++)

b=++c*b+a++

  • תגובות 30
  • צפיות 2.8k
  • נוצר
  • תגובה אחרונה
פורסם
  • מחבר

כמוכבן ש++ האחרון מתייחס למה שבא אחרי a

כנ''ל לגבי הסוגריים

פורסם

ערוך את ההודעה ושים את הקוד בתוך טג קוד כדי שיהיה קריא יותר.

פורסם
  • מחבר

ערכתי :)

פורסם

פשוט תעבור על הקוד שורה אחר שורה, בכל פעם תכתוב מה בדיוק ערכי כל המשתנים. תדאג להבדיל בין ++x ו-x++.

פורסם
  • מחבר

פשוט תעבור על הקוד שורה אחר שורה, בכל פעם תכתוב מה בדיוק ערכי כל המשתנים. תדאג להבדיל בין ++x ו-x++.

אני לא יודע מה ההבדל, תוכל להסביר לי?

פורסם

האחד מגדיל את הערך ואז מחזיר אותו והשני מחזיר אותו ורק אז מחזיר את הערך. דוגמא:

int a = 5;
int b = 0;
b = ++a; // b is 6 and so is a
//now b=6, a=6
b = a++;//b is 6, a is 7

פורסם
  • מחבר

אז בתרגיל שלי b= -9?

פורסם
  • מחבר

מהו סדר הפעולות?

פורסם

קודם כל ++, אחר כך כפל ואחר כך חיבור רגיל.

שים לב להבדל בין ++x ו-x++ כמו שהסברנו לך. אם לדוגמה אתה מחשב משהו כזה:

x = ++y + z++

אז הפעולות שצריך לעשות הן: לשמור את הערך הישן של z בצד, להעלות את z ואת y ב-1, ואז לשים ב-x את הסכום של הערך החדש של y (כי ה-++ בא לפניו) עם הערך הישן של z (כי ה-++ בא אחריו).

פורסם
  • מחבר

אם C= -2

אז

++c=-1?

פורסם

עריכה - הייתה לי טעות, עשיתי בדיוק ההיפך מקודם...

תחשוב על זה ככה:

c++

מגדיל את c באחד ואז מבצע את הפעולה עם c.

שקול ל-:

b = c
c = c + 1

++c

מבצע פעולה עם c ואז מגדיל אותו באחד.

c = c + 1
b = c

פורסם

בדיוק הפוך.

++ אחרי ה-C יתן ל-B את C, ול-C את C+1.

++ לפני ה-C יתן ל-B וגם ל-C את C+1

פורסם

אם אתה רוצה לפשט אז

b=++c*b+a++;

שקול ל

c=c+1;
b=c*b+a;
a=a+1;

ארכיון

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

דיונים חדשים