פורסם 2009 בפברואר 2416 שנים שלום לכולם יש לי תרגיל בשפת C. אני צריך לכתוב תוכנה שהמשתמש מכניס מספר והתוכנה הופכת את זה לספרות רומיות. אני לא ממש מוצא דרך שהתוכנה תקבל מספר ותמיר את זה לאותיות נגיד שיכניסו 3 ויתקבל III. מישהו יכול לעזור לי? תודה
פורסם 2009 בפברואר 2416 שנים הרעיון הכללי הוא לבצע חלוקה של המספר העשרוני לספרות הרומיות מהגדולה ביותר לקטנה ביותר בשילוב עם % (Mod)מקווה והרמז עזר.
פורסם 2009 בפברואר 2416 שנים מחבר וואי אני הכי גרוע שאפשר עם חלוקה כזאת. תוכל לתת לי דוגמה קטנה למה אתה מתכוון?
פורסם 2009 בפברואר 2416 שנים int number - הוא הקלטתחילה נבצעnumber \ 1000 = מספר הM-יםnumber % 1000 = reminderreminder \ 500 = מספר הD-ים (תמיד או אחד או 0)reminder % 500 = newReminderוכך הלאהלמעשה קיבלת פה 90% מהתשובה.אני מאמין שמפה תסתדר לבד.
פורסם 2009 בפברואר 2416 שנים הנה הצעה שלי:#include <stdio.h>typedef char * String;int main(){ String units[] = { "I" , "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" }; String dozens[] = { "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" }; String hundreds[] = { "C", "CC" , "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" }; int i, unit_dig, dozen_dig, hundred_dig, thousand_dig, num; printf("Write a decimal number \n"); scanf("%d", &num); unit_dig = num % 10; dozen_dig = num / 10 % 10; hundred_dig = num / 100 % 10; thousand_dig = num / 1000; for( i=0; i < thousand_dig; i++) printf("M"); if(hundred_dig != 0) printf("%s", hundreds[hundred_dig-1]); if(dozen_dig != 0) printf("%s", dozens[dozen_dig-1]); if(unit_dig != 0) printf("%s", units[unit_dig-1]); return 0;}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.