מנסה לקלוט ולפלוט משתנים על ידי פונקציות ב-C...
הודעה זו נכתבה על-ידי yog22 בתאריך: 08.10.06 - שעה: 03:05:53
הכוונה: קקודד ססוףף #include <stdio.h> again(num) } num=num-1; printf("num is:%d',num); return 0; { main () } int num; while (num=0) again() { ססוףקודד ססוףף עכשיו, זה לא ה שרציתי, אבל כמו שאפשר לראות בקוד, אני רוצה שהפוקציה again תוריד את הערך של num שנמצא ב-main באחד... מישהו יכול לעזור לי (מה שפרימתי זה לא הדרך)
|
כנס
הודעה זו נכתבה על-ידי killer107 בתאריך: 09.10.06 - שעה: 19:15:10
קקודד #include <stdio.h>
again(int num) { num=num-1; return num; }
main () { int num; printf("enter a number: "); scanf("%d", &num); again(num); printf("num is: %d", num); } ססוףף
אם משהו לא מובן אתה יכול לדבר איתי באיסי 296563222
|
ניסיתי את זה
הודעה זו נכתבה על-ידי yog22 בתאריך: 10.10.06 - שעה: 20:21:08
זה לא עבד
|
זה מראה לך שגיאה כלשהיא שזה לא עובד?
הודעה זו נכתבה על-ידי killer107 בתאריך: 11.10.06 - שעה: 08:21:21
|
היי היי היי מה אתה עושה???
הודעה זו נכתבה על-ידי amosexy בתאריך: 09.11.06 - שעה: 19:15:20
אחי יש לך טעות קלינית חחחח איפה הערך של NUM הראשוני??? ממה אתה רוצה שהוא יוריד?? אתה צריך לקלוט את NUM קודם כל... אני יכול לכתוב לך בסי++ איך זה יראה.. #include<iostream> using namespace std; again (int &num) { num=num-1; cout <<"the number is"<<num<<endl; return num; } main() { int num; cout <<"insert number"<<endl; cin >>num; again(int num); return 0; } זה בערך בלי לבדוק דקדוקי שפה...
}
|
בדיוק אחי לא הגדרת את המשתנה num
הודעה זו נכתבה על-ידי PriGaT בתאריך: 13.11.06 - שעה: 17:20:41
|
עם הקוד יש כמה בעיות
הודעה זו נכתבה על-ידי Pose 69 בתאריך: 18.11.06 - שעה: 13:05:17
1. כמו שכבר אמרו פה, לא הגדרת את המשתנה Num. 2. הגדרת פונקציה again, אבל לא הגדרת מה ערך ההחזר שלה. דבר בעייתי במיוחד לאור העובדה שאתה מנסה להחזיר ממנה ערך מספרי 3. לא איתחלת את ערך המשתנה. אם לא איתחלת את הערך, הערך שיש בו הוא "זבל" שהיה בתא הזכרון. כל פעולה חשבונית תבוצע על אותו ערך לא ידוע.
4. הלולאה שלך היא מוטעת מיסודה. זה לא נכון לרשום while(num = 0) אם כבר זה while (num==0) הלולאה שאתה כתבת לא תרוץ לעולם. מכיוון שהלולאה רצה כל עוד אמת או כל עוד שקר. ב C כל מס' שאינו 0 הוא אמת, ואילו המס' 0 הוא שקר. מה שאתה עושה בלולאה זה מאתחל את num ל 0 ורץ כל עוד num. זאת אומרת שהוא מלכתחילה שקר. מה שאומר שלעולם לא תכנס ללולאה. סביר להניח שלולאה כזאת תקפיץ Warning בקומפיילר.
5. בכל מקרה גם אם היית כותב את הלולאה בצורה תקנית שהיא while(num==0) הרי שעדיין מבחינה לוגית הלולאה לא הכרחית. כי אם לפני הלולאה ערכו של המשתנה num אינו 0, אז הלולאה תחזיר שקר ולא תתבצע. ואם ערכו הוא 0, אז תתבצע כניסה ללולאה והפחתת num ב 1. כך שבפעם הבאה הערך של num יהיה -1 ונגמרה הלולאה. משמע שהלולאה תתבצע לכל היותר פעם אחת. בשביל פעולה שיודעים מראש שתתבצע פעם אחת בלבד. לא יוצרים לולאה.
במילים אחרות. כל הקוד שלך כמה שהוא קצר, הוא לא נכון. לא מבחינת תחבירית ולא מבחינה לוגית
|
תשובה
הודעה זו נכתבה על-ידי amosexy בתאריך: 18.11.06 - שעה: 19:04:14
קקודד ססוףף
#include <stdio.h> again(num) { if (num>0) {num=num-1;} else {num=num+1;} printf("num is:%d',num); return 0; } main () { int num; הדפס הודעה למשתמש לקלוט מספר אחרי זה קלוט מספר למשתנה NUM while (num<>0) again() }
תודיע אם זה עזר לך...
|