נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: שפת C

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
hazilit
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 24 May 2008 בשעה 18:53 | IP רשוּם
ציטוט hazilit

התבקשתי לכתוב בשפת C תוכנית שתקרא מספר שלם עשרוני מהקלט על ידי scanf ותדפיסו ע"י putchar .
כעזרה היה רשום להוסף משתנה עזר בו ייאגר המספר הנקלט הפוך ואז יודפס בputchar ע"י הפונקצייה של שארית החלוקה.
הגדרתי משתנים מטיפוס int אבל הסתבכתי בנסיון לרשום את המספר בצורה הפוכה בתוך המשתנה עזר ובפקודת הפלט.
אשמח אם תוכלו לעזור.

חזרה לתחילת העמוד הצג את כרטיס החבר של hazilit חפש הודעות אחרות של hazilit בקר בדף הבית של hazilit
 
yohai
מנהל פורומים
מנהל פורומים
סמל אישי

הצטרף / הצטרפה: 11 November 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 354
נשלח בתאריך: 25 May 2008 בשעה 11:36 | IP רשוּם
ציטוט yohai

השאלה לא כל כך ברורה:

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

עקרונית אתה צריך לקבל את שארית החלוקה ב-10. ואז את הספרה שקבלת להפוך

ל-אסקיי. אם אני לא טועה יש פונקציה להפיכה אבל אתה גם יכול, להוסיף את ערך הספרה

שקבלת + ערך האסקיי של 0.

דוגמא: 5+'0'.

ואז תקבל קוד אסקיי של 5.

ואז אתה מדפיס את אותו הערך ב-putchar, וזהו, סיימת את התרגיל...

חזרה לתחילת העמוד הצג את כרטיס החבר של yohai חפש הודעות אחרות של yohai בקר בדף הבית של yohai
 
אלעד
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 25 May 2008 בשעה 19:01 | IP רשוּם
ציטוט אלעד

אוקיי...תוכל לרשום את קוד התוכנית כי קצת התבלבלתי מההסבר..?

תודה.

חזרה לתחילת העמוד הצג את כרטיס החבר של אלעד חפש הודעות אחרות של אלעד בקר בדף הבית של אלעד
 
Dark Phoenix
משתמש פעיל
משתמש פעיל


הצטרף / הצטרפה: 22 December 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 50
נשלח בתאריך: 25 May 2008 בשעה 19:16 | IP רשוּם
ציטוט Dark Phoenix

כדי להפוך מספר, אפשר להשתמש בדרך הזאת:

נתון: N-מספר שלם, R-המספר ההפוך
1) אפס את R
2) כל עוד N != 0 בצע
2.1) הכפל את R בעשר
2.2) הוסף ל-R את שארית החלוקה של N בעשר (N % 10)
2.3) חלק את N בעשר

הספרה הימניות ביותר ב-N תעבור ל-R ותוכפל כל פעם בעשר, וכך תהפוך לשמאלית ביותר ב-R. כך גם עם שאר הספרות.

החלק היותר פשוט הוא לקחת את המספר, להוריד ממנו כל פעם את ספרת האחדות, למצוא את קוד האסקיי המתאים לה ולעבור לספרה הבאה.

while (R > 0) {
 putchar(R % 10 + '0');
 R /= 10; //a
{

(ה-a זה כדי ליישר את השורה) בעקרון אני לוקח את הספרה הראשונה, מוסיף לערך שלה את ערך האסקי של המספר אפס.
חזרה לתחילת העמוד הצג את כרטיס החבר של Dark Phoenix חפש הודעות אחרות של Dark Phoenix
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה