כותב |
|
עומר אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 04 March 2009 בשעה 15:15 | | IP רשוּם
|
|
|
|
שלום!
אני צריך לדעת איך בלולאת For אפשר לקבל מספר נתון..ולהדפיס את סכום הספרות שלו..
לדוגמא: ו39853 זה ידפיס לי 5.
45 זה ידפיס לי 2.
תודה לעוזרים..
|
חזרה לתחילת העמוד |
|
|
danikel משתמש מתחיל
הצטרף / הצטרפה: 19 December 2008 מדינה: Israel
משתמש: מנותק/ת הודעות: 32
|
נשלח בתאריך: 04 March 2009 בשעה 16:51 | | IP רשוּם
|
|
|
|
" 45 זה ידפיס לי 2."? לא אמור להדפיס 9?! ואני חושב שיש דרך. העאף ההתחלתי הוא NUM התנאי הוא גדול מאפס, והצעד הוא I=num/10.
__________________
|
חזרה לתחילת העמוד |
|
|
פתרון אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 04 March 2009 בשעה 21:41 | | IP רשוּם
|
|
|
|
פתרון גם לסכום הספרות וגם למספר הספרות
int num = 12345; int mone = 0; int sofer = 0; while (num > 0) { sofer += num % 10; num = num / 10; mone++; }
|
חזרה לתחילת העמוד |
|
|
danikel משתמש מתחיל
הצטרף / הצטרפה: 19 December 2008 מדינה: Israel
משתמש: מנותק/ת הודעות: 32
|
נשלח בתאריך: 05 March 2009 בשעה 01:10 | | IP רשוּם
|
|
|
|
הוא ביקש בלולאת FOR.
__________________
|
חזרה לתחילת העמוד |
|
|
carloc משתמש מתחיל
הצטרף / הצטרפה: 23 January 2009 מדינה: Israel
משתמש: מנותק/ת הודעות: 22
|
נשלח בתאריך: 05 March 2009 בשעה 08:36 | | IP רשוּם
|
|
|
|
אתה רציני?תשנה את ה- while ל for......
|
חזרה לתחילת העמוד |
|
|
גד אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 05 March 2009 בשעה 09:35 | | IP רשוּם
|
|
|
|
לולאת for פחות יעילה כאן, משום שקודם צריך לדעת את מספר הספרות באמצעות while או רקורסיה, ורק אז ניתן יהיה להריץ לולאת for. את הפתרון בצורת while כבר נתנו פה.
אם אתה בכל זאת רוצה בעזרת for, תצטרך לבדוק תחילה את מספר הספרות, או לבקש מהמשתמש שיכניס גם את מספר הספרות. נניח שמספר הספרות נמצא במשתנה Length , כך ייראה פתרון אפשרי בעזרת for :
קוד:
for (int i = 0; i < Length; i++) { sum+= num % 10; num /= 10; } |
|
|
|
חזרה לתחילת העמוד |
|
|
carloc משתמש מתחיל
הצטרף / הצטרפה: 23 January 2009 מדינה: Israel
משתמש: מנותק/ת הודעות: 22
|
נשלח בתאריך: 05 March 2009 בשעה 12:20 | | IP רשוּם
|
|
|
|
אולי אני קצת מפחית מקושי הבעיה אבל לא אפשרי להריץ לולאת for כזאת: n- המספר שהתקבל s- קונטר ובסוף פשוט מדפיסים את S....לי זה עבד.
קוד:
for (i=n; i>0; i=i/10) { s++; } |
|
|
|
חזרה לתחילת העמוד |
|
|
danikel משתמש מתחיל
הצטרף / הצטרפה: 19 December 2008 מדינה: Israel
משתמש: מנותק/ת הודעות: 32
|
נשלח בתאריך: 05 March 2009 בשעה 16:19 | | IP רשוּם
|
|
|
|
אני יודע שזה כמעט אותו דבר WHILE וFOR במקרה הזה, כמובן שעדיף WHIEL אבל אם האדם ביקש בFOR אז הוא רוצה בFOR,הוא כנראה יודע בWHILE. וכן הלולאה של carloc לולאה שחשבתי עליה.
__________________
|
חזרה לתחילת העמוד |
|
|
גד אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 05 March 2009 בשעה 17:17 | | IP רשוּם
|
|
|
|
תשכח ממה שכתבתי מקודם, carloc גרם לי להבין שרשמתי שטויות. הנה הפתרון (הוא ביקש את סכום ספרות המספר):
קוד:
int n = int.Parse(Console.ReadLine()); int sum = 0; for (int i = n; i > 0; i /= 10) { sum += (n % 10); n /= 10; } Console.WriteLine(sum); |
|
|
|
חזרה לתחילת העמוד |
|
|
גד אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 05 March 2009 בשעה 17:18 | | IP רשוּם
|
|
|
|
עכשיו אני שם לב שהוא רשם "סכום הספרות" אבל התכוון למספר הספרות... אז כמו ש- carloc אמר, הנה:
קוד:
int n = int.Parse(Console.ReadLine()); int sum = 0; for (int i = n; i > 0; i /= 10) { sum++; } Console.WriteLine(sum); |
|
|
|
חזרה לתחילת העמוד |
|
|