עבור לתוכן

בעיה בקוד C קל

Featured Replies

פורסם

התחלתי ללמוד 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 הוא לא כל כך רלבנטי כרגע, כי זה פשוט קובע את הערך שהתוכנה תחזיר למערכת ההפעלה ולכן זה לא ממש משנה...

ארכיון

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

דיונים חדשים