פורסם 2011 בנובמבר 3014 שנים אוקי, הסברת למה עשית n/10 ולמה עשית ++cnt. לא הבנתי מה הקשר ל-n%10 כאן (אתה לא צריך לדעת מהי הספרה הימנית בשביל לספור שיש אחת כזו), ובכלל למה אתה משווה בין זה לבין cnt. תחשוב שהיית סופר כמה ילדים יש בכיתה - האם באמת אתה צריך לדעת איך קוראים להם בשביל לספור?חוץ מזה, לא הבנתי למה אתה טוען שהקוד שלך לא עובד (חוץ מהדבר המוזר שעשית עם n%10, והעובדה שהפונקציה שלך לא מחזירה שום דבר, הקוד נראה בסדר גמור).נ.ב. אל תתקמצן על אותיות, תקרא למשתנה שלך count ולא cnt.
פורסם 2011 בנובמבר 3014 שנים מחבר void SumOfDig(signed n){ int count=0; do { count++; n=n/10; } while(n>0);}תקין?
פורסם 2011 בנובמבר 3014 שנים לא יודע, תריץ את הפונקציה ותראה.רמז: מה אתה עושה עם count כשהפונקציה מסתיימת?
פורסם 2011 בנובמבר 3014 שנים למה מעניין אותך ערך הספרה אם כל מה שאתה רוצה זה מספר הספרות? או ששוב לא הבנתי מה אתה מנסה לעשות...
פורסם 2011 בנובמבר 3014 שנים מחבר כן אני יודע, מדפיס אותו מן הסתם ;D ..הרצתי את זה עכשיו וזה עובד מעולה.תודה!!.
פורסם 2011 בנובמבר 3014 שנים אופצייה דומה היא לרוץ בלולאה ולבדוק האם עשר בחזקת i גדול מהמספר. בפעם הראשונה שכן אתה מחזיר את i.אל תשכח שוב את מקרה המספר 0!
פורסם 2011 בנובמבר 3014 שנים אופצייה דומה היא לרוץ בלולאה ולבדוק האם עשר בחזקת i גדול מהמספר. בפעם הראשונה שכן אתה מחזיר את i.אל תשכח שוב את מקרה המספר 0!לא יעבוד על מספר שלילי, אבל תמיד אפשר לעשות אבסולוט לאינפוט.
פורסם 2011 בנובמבר 3014 שנים omfir: לעבור בלולאה שכל פעם תגדיל את i ב-1, תחשב את 10 בחזקת i, ואז תבדוק אם התוצאה גדולה מ-n. אם כן, אז i הוא מספר הספרות. אחרת תמשיך בלולאה.בכל מקרה זה לא מומלץ, כי אפשר להגיע ל-overflow (אם n מכיל את מספר הספרות המקסימלי ש-int יכול להכיל).
פורסם 2011 בנובמבר 3014 שנים צודק, ב-C הטיפוס int יכול להיות זהה ל-long int.בכל מקרה, השתמשתי בפונקציה כזאת היום:int numOfDigits(int num){ if (num==0) { return 1; } int counter=0; while (num!=0) { num/=10; counter++; } return counter;}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.