12-04-2007, 07:45
|
|
|
|
חבר מתאריך: 21.09.05
הודעות: 5,321
|
|
מממ..
הבנתי את הרעיון, לא את הדרך.
למה getche צריך להיות שונה מ-13? ובכלל, הוא אף פעם לא יהיה שווה ל-13 או כל מספר דו ספרתי אחר, כי במקומו זיכרון של תו אחד בלבד (1,3 - שני תווים)
אני מציע לחלק את הקוד בצורה שונה - במקום לעשות הכל ביחד, עשה:
1. הצהרת משתנים
2. הודעה למשתמש
3. קליטת מספר (scanf. כל פעולות getch לסוגיהן יקלטו מס' חד ספרתי בלבד)
4. בדיקת מס' הספרות - הדרך הפשוטה והטובה היא:
כל עוד המספר גדול מ-0, חלק אותו ב-10 והגדל את הערך של המונה ב-1.
5. הצגת תוצאה למשתמש
ההסבר לדרך של 4:
בכל הרצה של הלולאה אתה בעצם מוריד את הספרה האחרונה של המספר. מס' היצות של הלולאה, עד שהמספר מתבטל לגמרי (הוא שווה ל-0, כי טיפוס int מעגל למטה). מס' הריצות של הלולאה הוא המונה שמגדילים ב-1, ולכן הוא מבטא את מס' הספרות.
בהצלחה.
_____________________________________
בברכה, נעם בריקמן
|