ABA


"שאלה בשפת C- אני צריך לכתוב פונקציה שאינה מקבלת פרמטרים (קוד מצורף)"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21652 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21652
Guygu
חבר מתאריך 31.10.15
377 הודעות
   00:36   16.04.16   
אל הפורום  
  שאלה בשפת C- אני צריך לכתוב פונקציה שאינה מקבלת פרמטרים (קוד מצורף)  
 
   עבר עריכה לאחרונה בתאריך 16.04.16 בשעה 16:37 על-ידי spidey1 (מנהל הפורום)
 
והמטרה שלה לספק שם מתוך רשימה, והפונקציה צריכה להחזיר בכל קריאה שלה את השם העוקב לשם שהחזירה בקריאה הקודמת מתוך סדרה קבועה של 30 שמות.
בכל קריאה על התוכנית הראשית להדפיס את השם שהחזירה הפונקציה.

זה הקוד שכתבתי אבל עושה לי שגיאה בשורה


static char a=



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


const int LEN=30;
char * get_name(void);
void print (char);

void print (char a )
{
int i =0;
for (i =0; i < strlen(a); i++)
printf( "%c", a);

}
char * get_name()
{
static int index = 0;

static char a = {"amit","guy","eyal","moshe","yakov","yaniv","nahum","gal","adi","tal","yossi","yogev",
"shay","natan","ran","avi","aviv","eli","roni","eti","dana","itay","mor","yoni","dani","galit","menni",
"hen","ori","michal","kobi","dan","reuven"};

if (index == LEN)
index = 0;
char pointer = a;
index ++;
return pointer;
}
int main()
{
print(get_name());
return 0;
}


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  השאלה לא ממש ברורה. ShocKi  16.04.16 00:46 1
     צודק- הקומפיילר אומר get_name.c:20:14: error: array type has incomplete element Guygu 16.04.16 00:56 2
         כמו שכתבתי.. ShocKi  16.04.16 00:58 3
     ניסיתי לפי מה שאמרת וזה עדיין עושה לי אותה שגיאה Guygu 16.04.16 01:08 5
  ממליץ לך לעבור קצת על מערכים ופויינטרים simond15  16.04.16 00:58 4
     אחרי ה static char a יש גם 2 סוגרים מרובעות ששמתי (מטריצה) Guygu 16.04.16 01:09 6
         כמו שאמרתי, ממליץ לעבור על מערכים ופויינטרים וההבדלים בינהם simond15  16.04.16 01:18 7
             אני בהחלט יעבור ... הקוד שרשמת לי עבר קומפליציה אבל התוכנית לא עובדת Guygu 16.04.16 01:25 8
                 כי זה מה שאתה עושה ב-main, מדפיס פעם אחת simond15  16.04.16 01:36 9
  תכתוב פה שוב את הקוד שלך אחרי התיקונים שעשית + הודעת השגיאה שאתה מקבל spidey1   16.04.16 16:39 10
     תודה רבה הסתדרתי, פשוט הוספתי לולאה כמו שאמר הבחור מעליי Guygu 16.04.16 17:42 11
         מעולה! spidey1   18.04.16 11:47 12

       
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   00:46   16.04.16   
אל הפורום  
  1. השאלה לא ממש ברורה.  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 16.04.16 בשעה 01:03 בברכה, ShocKi
 
אם בכל קריאה הפונקציה אמורה להחזיר את השם העוקב לקריאה הקודמת. מה היא אמורה להחזיר בקריאה הראשונה כשאין שם קודם?

אגב, אתה צריך להיפטר מההרגל של לומר "זה עושה לי שגיאה", כי כשאתה מדבר עם מתכנתים ומנסה למצוא פתרון לבעיה שנתקלת בה השאלה שתמיד תשאל היא "איזה שגיאה"? מה הקומפיילר אומר לך?

אני כבר לא ממש זוכר c אבל נראה לי שאתה מנסה להגדיר ערכים מרובים על משתנה בודד.
כשאתה אומר char a הערך שאתה יכול לשים שם הוא ערך אחד... זה לא מערך, זה לא רשימה, זה תא אחד מסוג char.
נסה את זה:

char *ar = {"first", "second", "third"};
עריכה: מסיבה כלשהי הסוגריים המרובעות לא מופיעות... יש כנראה באג ברוטר.
כתוב שם *ar ואחרי זה סוגרים מרובעות... אם אני זוכר נכון את השפה אפשר גם במקום זה לעשות ar**


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Guygu
חבר מתאריך 31.10.15
377 הודעות
   00:56   16.04.16   
אל הפורום  
  2. צודק- הקומפיילר אומר get_name.c:20:14: error: array type has incomplete element  
בתגובה להודעה מספר 1
 
   שאין לי מושג מזה אומר השגיאה הזאת

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   00:58   16.04.16   
אל הפורום  
  3. כמו שכתבתי..  
בתגובה להודעה מספר 2
 
   אתה מאתחל את המשתנה כאילו הוא מערך מבלי שהצהרת עליו כמערך.


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Guygu
חבר מתאריך 31.10.15
377 הודעות
   01:08   16.04.16   
אל הפורום  
  5. ניסיתי לפי מה שאמרת וזה עדיין עושה לי אותה שגיאה  
בתגובה להודעה מספר 1
 
  

@ShocKi@


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
simond15  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 21.8.10
1144 הודעות, 3 פידבק
   00:58   16.04.16   
אל הפורום  
  4. ממליץ לך לעבור קצת על מערכים ופויינטרים  
בתגובה להודעה מספר 0
 
   כי זה נראה שיש לך חוסר הבנה בסיסי

char זה תו אחד, לדוגמא 'a'.
char* זה בעצם מערך של תווים, לדוגמא "amit".
char** זה בעצם מערך של מערכים של תווים, לדוגמא המערך עם כל השמות שיש לך.

אז במקום מערך של שמות, הגדרת את a בתור תו.
אחר כך יש לך שם משתנה שנקרא פויינטר, אז תעשה אותו פויינטר באמת.
ואם אתה מקדם index אז תשתמש בו.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Guygu
חבר מתאריך 31.10.15
377 הודעות
   01:09   16.04.16   
אל הפורום  
  6. אחרי ה static char a יש גם 2 סוגרים מרובעות ששמתי (מטריצה)  
בתגובה להודעה מספר 4
 
  
אז לא הצלחתי להבין מה לעשות או מה לא עשיתי טוב מההסבר שלך


@simond15@


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
simond15  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 21.8.10
1144 הודעות, 3 פידבק
   01:18   16.04.16   
אל הפורום  
  7. כמו שאמרתי, ממליץ לעבור על מערכים ופויינטרים וההבדלים בינהם  
בתגובה להודעה מספר 6
 
   בכל מקרה, זה אמור לעבוד




                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Guygu
חבר מתאריך 31.10.15
377 הודעות
   01:25   16.04.16   
אל הפורום  
  8. אני בהחלט יעבור ... הקוד שרשמת לי עבר קומפליציה אבל התוכנית לא עובדת  
בתגובה להודעה מספר 7
 
   ערכתי לאחרונה בתאריך 16.04.16 בשעה 01:29 בברכה, Guygu
 
הוא מדפיס לי את השם הראשון וזהו שם נעצר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
simond15  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 21.8.10
1144 הודעות, 3 פידבק
   01:36   16.04.16   
אל הפורום  
  9. כי זה מה שאתה עושה ב-main, מדפיס פעם אחת  
בתגובה להודעה מספר 8
 
   תעשה לולאה



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
spidey1  
חבר מתאריך 1.7.02
25536 הודעות
   16:39   16.04.16   
אל הפורום  
  10. תכתוב פה שוב את הקוד שלך אחרי התיקונים שעשית + הודעת השגיאה שאתה מקבל  
בתגובה להודעה מספר 0
 
  


Tears Will Get You Sympathy,
Sweat Will Get You Results!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Guygu
חבר מתאריך 31.10.15
377 הודעות
   17:42   16.04.16   
אל הפורום  
  11. תודה רבה הסתדרתי, פשוט הוספתי לולאה כמו שאמר הבחור מעליי  
בתגובה להודעה מספר 10
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
spidey1  
חבר מתאריך 1.7.02
25536 הודעות
   11:47   18.04.16   
אל הפורום  
  12. מעולה!  
בתגובה להודעה מספר 11
 
  


Tears Will Get You Sympathy,
Sweat Will Get You Results!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net