פורסם 2005 בפברואר 1220 שנים מחבר אלללה הצלחתי ;D #include <stdio.h> #include <conio.h> int main(){ int num1,num2; char sign; printf("enter num: "); scanf("%d",&num1); printf("enter sign: "); scanf("\n%c",&sign); while(sign!='*'){ printf("enter num: "); scanf("%d",&num2); if(sign=='+') num1=num1+num2; if(sign=='-') num1=num1-num2; printf("enter sign: "); scanf("\n%c",&sign); } printf("the sum is: %d",num1); getch(); } תודה לכולם! ;D
פורסם 2005 בפברואר 1220 שנים מה שכתבת לא כל כך עובד מכמה סיבות:אתה לא קולט את ה SIGN לפני זה ו- לא יכול לדעת מה יהיה שם.ואתה קולט אותו מחוץ ללולאה...קיצר מצאתי את הפונקציה שחיפשתי ומה שעידכנתי למעלה עובדבהצלחה
פורסם 2005 בפברואר 1220 שנים מחבר כן אחי ההודעה שלמעלה תיקנתי שם את זה... הנה התוכנית אחרי שעשיתי מסננת קלט, היא פועלת:#include <stdio.h>#include <conio.h>/*input: ñéãøú îñôøéí ùáéðéäí çéáåø àå çéñåø äñéãøä úñúééí ùéå÷ù *. output: úåöàú äñéãøä.*/void mesanenet(char sign);int main(){int num1,num2;char sign;printf("Enter a number: ");scanf("%d",&num1);printf("Enter a sign: ");scanf("\n%c",&sign);mesanenet(sign);while(sign!='*'){printf("Enter a number: ");scanf("%d",&num2);if(sign=='+')num1=num1+num2;if(sign=='-')num1=num1-num2;printf("Enter a sign: ");scanf("\n%c",&sign);mesanenet(sign);}printf("The sum is: %d",num1);getch();}void mesanenet(char sign){ while(sign!='+' && sign!='-' && sign!='*'){ printf("The sign is illegal, enter again: "); scanf("\n%c",&sign);} }
פורסם 2005 בפברואר 1320 שנים זה לא יעבוד לך מכיוון שאתה מקבל את SIGN כBY VAL ולא כBY POINTER.בפונ MESANENET שלך תנסה להחזיר את הSIGN החדש שקיבלת.(אלא אם כן תעשה את SIGN כגלובלי, ולא תשלח אותו לפונ, אבל זה כבר יהיה תכנות לא יפה כל כך).
פורסם 2005 בפברואר 1320 שנים לפותח התראד... קבל עצה מאנשים שמתעסקים בתיכנות כבר הרבה זמן.... חצי מהטעויות שהיו אצלך בקוד היה אפשר לתקן תוך שניה בעזרת הרצה אחת.... כשאתה מריץ את התוכנית. תן קלט לא נכון ותיראה איך ןאיפה התוכנית שלך עושה בעיות אתה מיסתמך שהקלט של המישתמש הוא נכון וזות הטעות הגדולה שלך הטעות שלי זה שגיעות כתיב...
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.