שאלה קטנה לגבי פקודת getche

Aviadp

New member
שאלה קטנה לגבי פקודת getche

אני מעוניין ליצור לולאה שגם תקלוט מספר כלשהו לתוך משתנה בשם num וגם תספור כמה ספרות יש במספר את השלב של ספירת הספרות אני מצליח, אבל איך אני משלב שם scanf וקולט משתנה? מצורפת הלולאה אודה לכם אם תעזרו לי
printf("Please enter number) while(getche()!=13) { ++digit_no } printf("there is %d digits\n",digit_no)​
 

טרמפיסט

New member
בכל אופן, הנה תשובה

עליך לקלוט פעם אחת מספר מהמשתמש (ע"י שימוש ב-scanf) ואז לבצע לולאה בה יחולק המספר ב-10 (חילוק בשלמים. אין צורך בנקודה עשרונית). משמעות החלוקה הזו היא השמטת ספרת האחדות בכל איטרציה, ספרה שערכה אינו חשוב לכלשעצמו אך מספר הפעמים שהמספר הנקלט יכול להתחלק ב-10 עד שיגיע ערכו החדש ל-0 הוא מספר הספרות שבו. חשוב על זה: אתה מבצע את החילוק כך שבכל פעם נשמטת הספרה הימנית עד שנשמטות כולן (ואז ערך המספר הנותר הוא 0).
 

טרמפיסט

New member
תשובה

קודם כל, כי השאלה מתייחסת לפתרון בשפת C, שבה כל ענייני ההמרות מתבצעות באופן שונה משפת VB, מה גם שזו המרה מערך מספרי (int) למחרוזת (char *) כך שהמצב קצת בעייתי. על כל פנים; עושה רושם שזו שאלה תכנותית עם דגש על אלגוריתם לפתרון, כלומר שאלה לימודית ולא בעיה טכנית שהשואל נתקל בה במהלך ביצוע משימה אחרת... כך שהפתרון המתבקש פה הוא אולי לא המהיר יותר, אלא ההוא המציג רעיונות תכנותיים מסויימים.
 
למעלה