![]() |
# 1 |
חבר בקהילה
|
עזרה במיון ספרות
היי אני צריך עזרה במיון ספרות
יש לי את הבעיה הבאה: בנה תוכנית אשר תמיין את הספרות במספר מהקטן לגדול לדוגמא: Enter number: 2974 The number: 2479 אסור להשתמש במערכים, מותר רק לולאות.. הבעיה כאן שאני לא יודע כל כך איך בכלל להתחיל את זה אז אם מישהו יתן לי כיוון אני יודה לו מאוד תודה |
![]() |
![]() |
# 2 |
הוסטסניון
|
באיזה שפה?
בעיקרון אתה יכול ללכת באופן רקורסיבי, כי אתה לא יודע באיזה גודל המספר, וחלק כל פעם ב10 וככה לבודד את המספר ואז לעבור במיון בועה או איך שזה לא נקרא שמחליף מיקומים סמוכים אם השני גדול מהראשון.
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן." |
![]() |
![]() |
# 3 |
משתמש - היכל התהילה
|
המספר חייב להיות 4 ספרתי?
__________________
קו ישר, כי אפשר גם אחרת |
![]() |
![]() |
# 4 |
אחראי קהילה
|
המספר שאתה קולט , אתה קולט אותו כSTRING או כINT/DOUBLE?
ועוד שאלה , האם המספר חייב להיות דו ספרתי ? "הנחה"? עריכה: ראיתי את התגובה שלך, אני אנסה עכשיו למדת רקורסיה? Last edited by דור; 08-05-09 at 17:29.. |
![]() |
![]() |
# 5 |
חבר בקהילה
|
המספר יכול להיות בכל גודל שהוא, הייתי צריך לציין את זה
לדוגמה 35326543 נקבל 23334556 והשפה היא C אם אפשר גם איזה רעיון עם PHP זה יכול לעזור תודה :} דור אני קולט אותו כINT וגם לא למדתי רקורסיה Last edited by Xinxy; 08-05-09 at 17:29.. |
![]() |
![]() |
# 6 |
אחראי קהילה
|
פיתרון
היי ,
זה בשפת סי שארפ אולי תבין עשיתי מהר כי אני ממהר לבית כנסת *יכול להיות שיש דרך יותר יעילה *אם למדת רקורסיה אחר כך אני אגיד לך מה צריך לעשות קוד:
static void Main(string[] args) { int num=12692; double ezer=Math.Pow(10,getnumofdigits(num)-1); double newNum=0; while (num>0) { newNum+= (num%10)*ezer; num=num/10; ezer=ezer/10; } Console.WriteLine(newNum); } public static int getnumofdigits(int num) { int count=0; while (num>0) { count++; num=num/10; } return count; } |
![]() |
![]() |
# 7 | |
חבר בקהילה
|
ציטוט:
זה נותן 29621 במקום 12269 תודה על הניסיון לעזור |
|
![]() |
![]() |
# 8 |
אחראי קהילה
|
אה,
סליחה... חשבתי מספר הפוך מצטער... כשאחזור אכתוב לך |
![]() |
![]() |
# 9 |
חבר על
|
שלום אשמח לעזור לך,
בעיקרון קודם כל עלייך להבין את דרך הפתרון. סה"כ כל מה שאתה צריך לעשות זה לדעת לפרק את המס' ומפה הדרך ממש קלה. אני אכתוב לך את העיקרון בC שארפ ואני מקווה שתבין. קוד:
int maxnum=0; while(num<0) { if(num%10>maxnum) maxnum=num; num=num/10; } הסבר פשוט של מה שעשיתי לקחתי משתנה איפסתי אותו והוא ישמש בתור מי שישמור את המספר הגדול ביותר וככה תדע מי הכי גדול |
![]() |
![]() |
# 10 |
חבר בקהילה
|
תראה יש הרבה דרכים לעשות את זה, המטרה בעצם זה למצוא דרך יפה ויעילה .
הדרך הכי בסיסית שאני חושב עליה זה כל פעם למצוא את המספר הכי קטן ולדחוף אותו למשתנה חדש לפי המיקום שלו.
__________________
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
כלים לאשכול | |
תצורת הצגה | |
|
|