עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

מתחיל ללמוד C לבד ויש לי בעיה.

Featured Replies

פורסם

אני הולך לפי הספר ויש לי את הקוד הזה :

#include <stdio.h>

int main (void)

{

int a, b, sum;

printf ("PLEASE ENTER THE FIRST NUMBER");

scanf("%b", &a);

printf ("PLEASE ENTER THE SECOND NUMBER");

scanf("%b", &b);

sum = a + b;

printf("THE AMOUNT OF %b AND %b is %b", sum ,a, b);

getchar();

return 0;

}

איך שאני מריץ ולוחץ אנטר אחרי שאני מכניס את המספר הראשון החלון דוס נעלם לי.

למה זה ומה לא עשיתי טוב ?

פורסם

אולי התכוונת לכתוב אחוז d ולא אחוז b בכל המקומות....

פורסם
  • מחבר

צודק אבל עכשיו אחרי שאני מכניס את המס' הראשון והשני מתי שהתוכנה אמורה להראות את התוצאה אז החלון נסגר.

פורסם

קרא ל-fflush לפני שאתה קורא ל-getchar.

ולהבא, כשאתה כותב כאן קוד, השתמש בטג קוד (כפתור # למעלה) כדי שיוצג בצורה נורמלית.

פורסם
  • מחבר

אתה יכול בבקשה להראות לי מה בדיוק לכתוב (ממש חדש בזה) ?

פורסם

כשאתה מבקש מהמשתמש לכתוב מספר, אתה צריך להשתמש ב-d%, ככה:

 scanf("%d", &a);

ולא ככה:

 scanf("%b", &a);

פורסם
  • מחבר

אוקיי תודה אבל לא הבנתי מה לעשות עם ה-fflush שאמרת לי.

פורסם
  • מחבר

כשאני עושה את זה הוא קופץ לי כשאני מקמפל ל-STDIO.H ומדגיש לי את השורה _CRTIMP int __cdecl fflush (FILE*);

זה מה שרשמתי :

#include <stdio.h>
int main (void)

{

int a , b , c , sum;
printf ("Please Enter The first Number\n");
scanf("%d", &a);
printf ("Please Second The first Number\n");
scanf("%d", &b);
printf ("Please Third The first Number\n");
scanf("%d", &c);
sum = a * b * c;
printf("The sum of %d %d and %b is %d", sum ,a,b,c);

fflush();
getchar();
return 0;

}

וזה מה שקורה שאני מקמפל :

http://img69.imageshack.us/img69/9388/90312375cm6.jpg

פורסם
  • מחבר

אוקיי תודה זה הצליח לי אבל יש לי כמה שאלות.

אני עובד לפי ספר ושם רשום בהתחלה לרשום

#include <stdio.h>
void main (void)

ואם אני רושם ככה זה לא עובד לי.

למה בדיוק ?

ועוד משהו:

אתם אמרתם לי לרשום בסוף:

fflush();
getchar();
return 0;

מה זה נותן ומה זה אומר ?

פורסם

בעקרון


void main (void)
{
fflush();
getchar();
return 0;
}

מה שאתה עושה כאן זה להגדיר פונקציה שנקראת main שלא מחזירה כלום (void לפני שם הפונקציה), אבל בסופה אתה כותב return 0 (מחזיר ערך מספרי). מה שיהיה נכון לעשות זה לשנות את ההגדרה ל


int main (void)
{

פורסם

הספר שלך מיושן ולא לפי התקן. לפי התקן של C, הפונקציה main חייבת להחזיר int, ולא יכולה להחזיר void. קומפיילרים חדשים יותר יסרבו לקמפל תוכנית כזו.

לגבי ה-fflush - הפקודה הזו זורקת את כל המידע שנמצא בקלט.

מה שקורה הוא ככה: שמת את ה-getchar על מנת שהתכנית לא תצא אחרי שהיא מדפיסה את התוצאה.

כשעשית scanf, התכנית ביקשה לקרוא מספר מהמשתמש - אבל המשתמש מכניס מספר ואחריו enter (שהוא תו מיוחד בפני עצמו). ה-scanf קורא רק את המספר, וה-enter עדיין נשאר בקלט, מחכה להיקלט ע"י פקודת קלט נוספת.

getchar בעצם עושה אחד משני דברים:

אם יש משהו שמחכה בקלט, אז getchar ישר יקרא אותו וימשיך הלאה.

אם אין משהו שמחכה בקלט, אז getchar יחכה עד שיהיה (ולכן ישהה את התכנית).

כיוון שה-enter חיכה בקלט, getchar מיד קרא אותו והמשיך הלאה, במקום לחכות למשתמש להכניס קלט נוסף.

מה ש-fflush עושה היא למחוק את המידע שבקלט. כשקראת לה, היא מחקה את ה-enter מהקלט, ואז ל-getchar לא היה שום מידע בקלט, והוא נאלץ לחכות לקלט נוסף.

פורסם

אתה מכיר אולי איזה מדריך טוב ועדכני לשפת C ברשת ? (אני מצטער פשוט לא רציתי לפתוח דיון חדש).

פורסם
  • מחבר

עוד משהו:

למה תמיד התוכנה אומרת לי שהמס' השני הוא הכי גדול ?

#include <stdio.h>
int main(void)

{

int a , b , c;
printf("enter the first number : \n");
scanf("%d", &a);
printf("enter the second number : \n");
scanf("%d", &b);
printf("enter the third number : \n");
scanf("%d", &c);

if (a > b)
printf("the first number is bigger\n");
else

if (a > c)
printf("the first number is bigger\n");
else

if (b > a)
printf("the second number is bigger\n");
else

if (b > c)
printf("the second number is bigger\n");
else

if (c > a)
printf("the third number is bigger\n");
else

if (c > b)
printf("the third number is bigger\n");
else

printf("all numbers equals\n");

fflush(stdin);
getchar();
return 0;

}

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.