Try HWzone in English English
עבור לתוכן
  • צור חשבון
  • מי אנחנו?

    שלום אורח/ת!

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

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

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

ארכיון

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

The-Q

בעיה בקוד C קל

Recommended Posts

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

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

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

הנה הקוד:



#include <stdio.h>

void test1(int quit_hi2)
{
if(quit_hi2 != 0)
{
printf("\nHello World\n");
printf(" %d", quit_hi2);
}

else
{
exit(0);
}

}


main()
{
int quit_hi;
printf("Please enter any number. 0 means quit : ");
scanf("%d", &quit_hi);
test1(quit_hi);
}

מה הבעיה??

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

הממ, הקוד נראה דווקא בסדר..

באיזה קומפיילר אתה משתמש?

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

ולא היית צריך לרשום את ה

else exit(0)

בפונקציה; התוכנה נסגרת בכל מקרה..

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

לא הבנתי למה אתה מתכוון, בעיקר בחלק השני של ההודעה שלך.

אני משתמש בקומפיילר של Digital Mars.

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

אני לא מכיר את הקומפילטור הזה, אבל אני מנחש שהתוכנית עושה בדיוק מה שהיא צריכה אבל פשוט חלון הפלט נסגר מיד אחרי שהתוכנית מתבצעת ולכן אתה לא רואה את מה שכתבת. פתרון פשוט לכך יהיה להוסיף את הפקודה getch(); או getchar(); בסוף התוכנית, וכך התוכנית תסתיים רק אחרי שאתה תלחץ על כפתור כלשהו...

עכשיו, בעניין ה exit(0) , אתה לא חייב לעשות את זה כי התכנית במילא תסתיים אחרי שהיא תצא מהפונק' test1 ואח"כ מ main...

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

זה היה אמור להיות exit(1), אבל לא משנה, כנראה טעיתי.

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

בכל מקרה, תודה רבה.

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

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

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

×
  • צור חדש...