עזרה ב-C

maromnn

New member
עזרה ב-C

יש לי את הקוד הבא:
int a; char b,c; printf("\nBefore we starting the game lets Setting some Options:\n\n"); printf(" What is the Number of the Players?: "); scanf("%d",&a); fflush( stdin ); /*sheerit*/ printf("\n Do Yous want to play with the computer? Y/N: "); scanf("%c",&b); fflush( stdin ); /*sheerit*/ printf("\n Do You want to Use the \"Remainder\"? Y/N: "); scanf("%c",&c); printf("%d %c %c",&a,&b,&c);​
עכשיו, כל שלושת הערכים הם הופכים לאות כזאת בגיבריש חוץ מה-INT שהוא נותן לי מספר מוזר אחר ממה שהקלדתי.. מישהו יודע? תודה.
 

InfectedM

New member
הבעיה שלך היא כאן:

עלייך להחליף את השורה הזו:
printf("%d %c %c",&a,&b,&c);​
בשורה הזו:
printf("%d %c %c",a,b,c);​
עלייך להדפיס את ערכי המשתנים ולא כתובתם.
 

maromnn

New member
ועוד שאלה ב-C ...

איך אפשר לקלוט (scanf) מחרוזת שהשם שלה p1,p2 וכו.. כאשר ה-1 וה-2 הם משתנה מסוג INT. זה אפשרי? תודה..
 

InfectedM

New member
תוכל לשאול בצורה ברורה יותר?

או להגיד לאיזו מטרה אתה צריך את זה. אולי אפשר לעשות את זה באופן אחר.
 

maromnn

New member
כן.._+_+

ככה: אני רוצה להכניס ערך מסויים למחרוזת שהשם שלה יהיה ערך של משתנה i נגיד מסוג INT... זה יותר ברור.? תודה.
 

InfectedM

New member
אתה יכול לעשות את זה במערכים

מספריים. אני בספק לגבי מחרוזות.
 

annefan

New member
קודם כל תרגע

ההקפצות שלך כל שעה לא ממש מביאות לך תשובות וסתם מעצבנות את העין. דבר שני, אם אני מבין אותך נכון, אתה רוצה משהו כזה: 1. לקלוט לתוך מחרוזת X, שם של משתנה:
char * varname = "i1";​
(כמובן שאתה רוצה לקלוט את השם מהמשתמש). 2. לתוך אותו משתנה (שאת שמו קיבלת למחרוזת) אתה רוצה להשים ערך מספרי. אם זה מה שאתה רוצה, אתה לא יכול לעשות את זה ב-C. רק שפות עם dynamic loading (אולי השם לא נכון) כמו perl (אולי גם פייתון) יכולות לשנות את טבלאות המשתנים שלהם תוך כדי ריצה. יכול להיות שאפשר לעבוד עם temaplate ו-pre-processor אבל לא נראה לי.
 

DadleFish

New member
אני חושב שזה

dynamic linkage... לפחות זה המונח ב-JAVA לדעתי. (בלי קשר ל-dynamic link libraries)
 

DadleFish

New member
אתה שולח את הכתובת של המשתנים,

במקום לשלוח את המשתנים עצמם. זה נכון ב-scanf, כשאתה כותב a& ולא a - כי ב-scanf המשתנה באמת משתנה תוך כדי הפונקציה (כי הוא נקלט), אבל ב-printf אתה צריך לשלוח את הערך עצמו, ככה למשל:
printf("%d %c %c", a, b, c);​
 
למעלה