כותב |
|
pakakos משתמש מתחיל
הצטרף / הצטרפה: 12 March 2009 מדינה: Israel
משתמש: מנותק/ת הודעות: 3
|
נשלח בתאריך: 31 March 2009 בשעה 10:26 | | IP רשוּם
|
|
|
|
כתבתי את התוכנה הבאה
קוד:
#include<stdio.h> #include<stdlib.h>
int main(void) { int i; printf("write first num "); scanf("%d " , &i); printf("your num is %d" , &i); system("pause"); }
|
|
|
והתוצאה היתה כזאת
write first num
(אני כתבתי):4
5
(לא יודע למה הוא ביקש שתי מספרים)
(מכאן המחשב כותב)
your num is 2293620
מישהו מוכן לעזור לי ולהסביר איך הוא הגיע למספר המוזר הזה?
|
חזרה לתחילת העמוד |
|
|
ניר מנהל האתר
הצטרף / הצטרפה: 12 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 3296
|
נשלח בתאריך: 31 March 2009 בשעה 15:40 | | IP רשוּם
|
|
|
|
קוד:
printf("your num is %d" , &i); |
|
|
צריך להיות
קוד:
printf("your num is %d" , i); |
|
|
__________________ מספר האייסיקיו שלי ו/או כתובת ה-MSN שלי אינם מהווים מוקד תמיכה
|
חזרה לתחילת העמוד |
|
|
פרופסור אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 02 April 2009 בשעה 18:11 | | IP רשוּם
|
|
|
|
התכנית שלך כתובה בשפה C, ולא בשפה C++
|
חזרה לתחילת העמוד |
|
|
carloc משתמש מתחיל
הצטרף / הצטרפה: 23 January 2009 מדינה: Israel
משתמש: מנותק/ת הודעות: 22
|
נשלח בתאריך: 06 April 2009 בשעה 11:31 | | IP רשוּם
|
|
|
|
פשוט כתבת &i שזה אומר תדפיס את הכתובת של i.
|
חזרה לתחילת העמוד |
|
|
pakakos אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 09 April 2009 בשעה 21:52 | | IP רשוּם
|
|
|
|
תודה רבה אני חדש בתכנות ולכן לא שמתי לב להבדלים בין שתי שפות התכנות
אגב בספר שאני לומד איותו שפת C ולא C++ כתוב שצריך לכתוב
קוד:
printf("your num is %d" , &i); |
|
|
ולא
קוד:
printf("your num is %d" , i); |
|
|
|
חזרה לתחילת העמוד |
|
|
pakakos אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 09 April 2009 בשעה 22:00 | | IP רשוּם
|
|
|
|
ניסית את מה שניר אמר והתוצאה הייתה דומה, עוד פעם מספר ארוך ולא מובן
והוא ביקש ממני שני מספרים למרות שכתבתי לו שיבקש רק אחד
ואגב אני משתמש בקומפיילר visual C++ 2008 כי לא מצאתי קומפיילר רק לשפת סי והבנתי שכל קומפיילר לC++ גם מקמפל C. וגם ניסיתי לעבוד עם DEV ועם BORLAND אבל לא כל כך הבנתי אותם והכי נוח לי עם VISUL,ואני שואל: יש הבדלים בצורת הקימפול? יכול להיות שהמספר הוא תוצאה של בעיה בקומפיילר? תודה לכל העוזרים והעונים על התשובות.
|
חזרה לתחילת העמוד |
|
|
שושן אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 09 April 2009 בשעה 23:59 | | IP רשוּם
|
|
|
|
תעתיק ותדביק לפה את כל הקוד שלך...
|
חזרה לתחילת העמוד |
|
|
pakakos אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 10 April 2009 בשעה 13:05 | | IP רשוּם
|
|
|
|
כתבתי את הקוד בהודעה הראשונה ואם תשימו לב כתבתי בהודעתי השניה תיקוני טעויות
תודה לעוזרים
|
חזרה לתחילת העמוד |
|
|
carloc משתמש מתחיל
הצטרף / הצטרפה: 23 January 2009 מדינה: Israel
משתמש: מנותק/ת הודעות: 22
|
נשלח בתאריך: 12 April 2009 בשעה 09:53 | | IP רשוּם
|
|
|
|
זה הקוד שצריך להיום כדי שהתוכנית שלך תעבוד. הוא מבקש 2 מספרים בגלל שיש לך רווח אחרי ה- d ב- scanf. MVS לא אוהב את זה כנראה. בנוסף עם אתה עובד על MVS חשוב שבפתיחת הפרוייקט תקיש על פרוייקט ריק ותפתח קובץ קוד עם סיומת נקודה C, לדוגמא code.c. כי רק אז הקומפילר מבין שאתה לא רוצה C++ אלא C. בנוסף לפחות ב- C ה- main בדר"כ הוא void ולא int.
קוד:
#include<stdio.h>
void main() { int i; printf("write first num "); scanf("%d", &i); printf("your num is %d\n" , i); }
|
|
|
|
חזרה לתחילת העמוד |
|
|
בני אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 13 April 2009 בשעה 19:26 | | IP רשוּם
|
|
|
|
לפי בתי הספר ב-C ה-main הוא בד"כ void, אבל לפי התקן הוא תמיד int.
|
חזרה לתחילת העמוד |
|
|
pakakos אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 20 April 2009 בשעה 13:34 | | IP רשוּם
|
|
|
|
תודה לכל אלה שעזרו לי ובמיוחד לCARLOCשפתר לי את הבעיה אני אנסה ונראה אם אני אציח
|
חזרה לתחילת העמוד |
|
|
פרופסור אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 24 April 2009 בשעה 06:09 | | IP רשוּם
|
|
|
|
בני כתב:
לפי בתי הספר ב-C ה-main הוא בד"כ void, אבל לפי התקן הוא תמיד int.
|
|
|
נכון. התקן אומר שהתכנית תמיד תחזיר ערך, ולכן היא לא יכולה להיות void. הרי אם התכנית תקרוס ותחזיר שגיאה (1), אזי היא מחזירה ערך. אם היא תעבוד טוב, אזי היא תחזיר את הערך 0. ולכן עפ"י התקן צריך להשתמש ב-int main, ולא ב-void.
מקווה שהצלחתי להסביר את עצמי טוב.
|
חזרה לתחילת העמוד |
|
|
carloc משתמש מתחיל
הצטרף / הצטרפה: 23 January 2009 מדינה: Israel
משתמש: מנותק/ת הודעות: 22
|
נשלח בתאריך: 27 April 2009 בשעה 17:17 | | IP רשוּם
|
|
|
|
פרופסור כתב:
בני כתב:
לפי בתי הספר ב-C ה-main הוא בד"כ void, אבל לפי התקן הוא תמיד int.
|
|
|
נכון. התקן אומר שהתכנית תמיד תחזיר ערך, ולכן היא לא יכולה להיות void. הרי אם התכנית תקרוס ותחזיר שגיאה (1), אזי היא מחזירה ערך. אם היא תעבוד טוב, אזי היא תחזיר את הערך 0. ולכן עפ"י התקן צריך להשתמש ב-int main, ולא ב-void.
מקווה שהצלחתי להסביר את עצמי טוב.
|
|
|
מבין את הרציונל מאחורי התקן, אך עדיין, אני לומד כרגע לתואר ראשון וממה שחברי באוניברסיטאות אחרות ואני לומדים רוב התוכניות main שלנו הם void, למה? לא יודע, ככה הרגילו אותנו.
|
חזרה לתחילת העמוד |
|
|