שאלה בשפת C

liatbi30

New member
שאלה בשפת C

אני צריכה לבדוק האם במספר שלם שנקלט בלולאה אם הוא מכיל ספרת 0 מרכזית

הבעיה שלי לא ידוע אם המספר השלם הוא בעל 3 ספרות או 2 ספרות וכו'

אני צריכה כיוון או משהו תודה
 

nocgod

New member
מה אכפת לך מה הוא אורך המספר?

תקראי אותו כמחרוזת באמצעות scanf
תבדקי מה האורך שלו באמצעות strlen
אם אי זוגי - תבדקי אם התו האמצעי במחרוזת הוא '0'
אם זוגי - תבדקי עם המרצה/מתרגל מה לעזאזל היא הספרה האמצעית במספר זוגי...
 

liatbi30

New member
זו בעיה!!!

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

CusslerD

New member
את יכולה לבדוק תחום

את יכולה למשל לבדוק האם המספר גדול מ 99, אם כן הוא בעל לפחות 3 ספרות, אחרת פחות (בהנחה ולא מדובר על מספרים שליליים)
למדתם על מודולו?
 

liatbi30

New member
כן למדנו

למדנו אני יודעת שאני יכולה לבדוק תחום אבל האם יש דרך קצרה יותר לבדוק זאת
 

Guy Yafe

New member
מה הכוונה ספרה אמצעית?

האם מדובר בספרה שנמצאת בדיוק באמצע במספר שמספר הספרות שלו הוא איזוגי, או שמדובר בכל ספרה שאינה הראשונה או האחרונה?
 

liatbi30

New member
דוגמא

דוגמא: קלט – 110, 457, 30456, 32045, 89, 1440 פלט – Yes

במספר 32045 יש 0 מרכזית
 

CusslerD

New member
קצת קשה לומר מבלי לדעת בדיוק מה למדת

ובמה את יכולה להשתמש, אבל פתרון אחד הוא להשתמש בלולאה כאשר בתוכה תשתמשי ב מודולו 10 על המספר ובאמצעות counter לבדוק את מספר הספרות.
אם מספר הספרות הוא אי זוגי אז השלב הבא הוא לבדוק האם הספרה האמצעית היא 0.
אם מספר הספרות הוא זוגי אז אין טעם לבדוק.
 

Guy Yafe

New member
תני לי להבין

התשובה היא האפשרות הראשונה שהצגתי:
א. נדרש מספר עם מספר איזוגי של ספרות.
ב. הספרה שמרחקה מהסוף ומרחקה מההתחלה זהים, חייבת להיות אפס.
 
למעלה