שאלה קטנה

מישהי2004

New member
שאלה קטנה

בשפת C כאשר אני רושמת את הפעולה - x mod y, ונניח שx=66 ו-y=60 אז השארית היא 1, כאשר אני עושה את הפעולה הזאת כשאני רוצה שהיא תיכנס לתוך משתנה, איזה ערך מקבלים.. 1 או 0.1?
 

מישהי2004

New member
שאלה אחרת

בשפת C, אם יש לי משתנה num שהוא מסוג int. הערך של num לצורך העיניין הוא 333. אם אני מבצעת את הפעולה: [num/60 * 60] האם הפעולה בעצם תהיה 333/60=5.5 ואז בעצם זה יהיה 5 כי זה int ואז 300=5*60?
 

inbal76

New member
השאלות מתאימות יותר לפורום "שפות תכנות" ../images/Emo140.gif

את השאלה הראשונה גם כדאי לך לנסח מחדש כי היא לא ברורה לדעתי (השארית היא 6 ולא 1. ולמה בכלל שיהיה 0.1?)
 

h a j b i

New member
לא מכיר C אבל אני אקח את הסיכון

בהנחה שסימן החלוקה "\" הוא אכן נותן תוצאת חלוקה ללא השארית (כמו div בפסקל למשל) אז באמת יקרה מה שרשמת. פעולת חשבוניות נעשות משמאל לימין ומאחר וכפל וחילוק הן מאותו מעמד אז כמו שאמרת קודם יבוצע החילוק שייתן לנו 5 ואז פעולת הכפל.
 

cyoni87

New member
זה בלי שארית

כי 333 הוא מטיפוס integer וגם 60 הוא מטיפוס integer ולכן התוצאה תמיד תהיה מטיפוס integer. (כי בחירת סוג החישוב בC הוא Context Independent - לא משנה מה עושים עם הערך אחר כך). אם היית כותבת: [num / 60.0 * 60] אז התוצאה הייתה 333.
 
למעלה