עבור לתוכן

זקוק לעזרה בכתיבת תוכנית ע"י רקורסיה

Featured Replies

פורסם

נתנו לנו מהאוניברסיטה לכתוב תוכנית אשר קוראת מילה מהמשתמש עד '\n'

ומדפיסה רק את האותיות הנמצאות בסדר לקסיקוגרפי בין האות הראשונה לאחרונה.

אם האות הראשונה זהה לאחרונה או אחריה בסדר הלקסיקוגרפי לא להדפיס כלום.

עכשיו היא צריכה להיות רקורסיבית ואסור להשתמש במערכים או במחרוזות.

מישו יכול לתת לי כיוון איך להתחיל בבקשה

פורסם

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

פורסם

לא חייב.

עם ריקורסיה הוא יכול לקרוא מילה כאוסף של תווים.

פורסם

#include <stdio.h>
#include <ctype.h>

char Do(char first)
{
char c,next;

if(((c = getchar()) == '\n') || ((next = Do(first)) == '\n'))
return c;

c = tolower(c);
next = tolower(next);
if (c> first && c<next)
printf("%c",c);

return next;
}

void main(void)
{
char c;
if ((c = getchar()) != '\n')
Do(c);
}

הרצתי את זה עם כמה דוגמאות וזה עבד טוב.

בעיקרון הפונקציה עובדת כך שהערך המוחזר בסוף, לאחר שנקלט \n הוא התו האחרון במילה.

עריכה: הוספתי את השימוש בפונקציה tolower ככה שזה לא משנה אם האות שנקלטת היא גדולה או קטנה.

פורסם
  • מחבר

תודה על העזרה :yelclap: אני רואה שיש אנשים טובים בפורום

אבל יש לך טעות התוכנית צריכה להדפיס את האותיות

שגדולות מהאות הראשונה וקטנות מהאות האחרונה.

פורסם

זה מה שהיא עושה...

פורסם
  • מחבר

סליחה לא שמתי לב

תודה רבה לך על העזרה

ארכיון

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

דיונים חדשים