עבור לתוכן

סכימת מס' הספרות שיש במספר C.

Featured Replies

פורסם
  • מחבר

תכוון אותי עוד קצת..

פורסם

אוקי, הסברת למה עשית n/10 ולמה עשית ++cnt. לא הבנתי מה הקשר ל-n%10 כאן (אתה לא צריך לדעת מהי הספרה הימנית בשביל לספור שיש אחת כזו), ובכלל למה אתה משווה בין זה לבין cnt. תחשוב שהיית סופר כמה ילדים יש בכיתה - האם באמת אתה צריך לדעת איך קוראים להם בשביל לספור?

חוץ מזה, לא הבנתי למה אתה טוען שהקוד שלך לא עובד (חוץ מהדבר המוזר שעשית עם n%10, והעובדה שהפונקציה שלך לא מחזירה שום דבר, הקוד נראה בסדר גמור).

נ.ב. אל תתקמצן על אותיות, תקרא למשתנה שלך count ולא cnt.

פורסם
  • מחבר

void SumOfDig(signed n)
{
int count=0;
do
{
count++;
n=n/10;

}
while(n>0);
}

תקין?

פורסם

לא יודע, תריץ את הפונקציה ותראה.

רמז: מה אתה עושה עם count כשהפונקציה מסתיימת?

פורסם

למה מעניין אותך ערך הספרה אם כל מה שאתה רוצה זה מספר הספרות? או ששוב לא הבנתי מה אתה מנסה לעשות...

פורסם
  • מחבר

כן אני יודע, מדפיס אותו מן הסתם ;D ..

הרצתי את זה עכשיו וזה עובד מעולה.

תודה!!.

פורסם

אופצייה דומה היא לרוץ בלולאה ולבדוק האם עשר בחזקת i גדול מהמספר. בפעם הראשונה שכן אתה מחזיר את i.

אל תשכח שוב את מקרה המספר 0!

פורסם
  • מחבר

לא כ"כ הבנתי..

אתה יכול לתת לי דוגמה בקוד

פורסם

אופצייה דומה היא לרוץ בלולאה ולבדוק האם עשר בחזקת i גדול מהמספר. בפעם הראשונה שכן אתה מחזיר את i.

אל תשכח שוב את מקרה המספר 0!

לא יעבוד על מספר שלילי, אבל תמיד אפשר לעשות אבסולוט לאינפוט.

פורסם

omfir: לעבור בלולאה שכל פעם תגדיל את i ב-1, תחשב את 10 בחזקת i, ואז תבדוק אם התוצאה גדולה מ-n. אם כן, אז i הוא מספר הספרות. אחרת תמשיך בלולאה.

בכל מקרה זה לא מומלץ, כי אפשר להגיע ל-overflow (אם n מכיל את מספר הספרות המקסימלי ש-int יכול להכיל).

פורסם

צודק, ב-C הטיפוס int יכול להיות זהה ל-long int.

בכל מקרה, השתמשתי בפונקציה כזאת היום:


int numOfDigits(int num)
{
if (num==0)
{
return 1;
}
int counter=0;
while (num!=0)
{
num/=10;
counter++;
}
return counter;
}

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים