עבור לתוכן

מה הבעייה בתוכנית?

Featured Replies

פורסם
  • מחבר

אלללה הצלחתי ;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 ;D :cool2:

פורסם

מה שכתבת לא כל כך עובד מכמה סיבות:

אתה לא קולט את ה SIGN לפני זה ו- לא יכול לדעת מה יהיה שם.

ואתה קולט אותו מחוץ ללולאה...

קיצר מצאתי את הפונקציה שחיפשתי ומה שעידכנתי למעלה עובד

בהצלחה

פורסם
  • מחבר

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

#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);}

}

פורסם

זה לא יעבוד לך מכיוון שאתה מקבל את SIGN כBY VAL ולא כBY POINTER.

בפונ MESANENET שלך תנסה להחזיר את הSIGN החדש שקיבלת.

(אלא אם כן תעשה את SIGN כגלובלי, ולא תשלח אותו לפונ, אבל זה כבר יהיה תכנות לא יפה כל כך).

פורסם

לפותח התראד...

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

כשאתה מריץ את התוכנית. תן קלט לא נכון ותיראה איך ןאיפה התוכנית שלך עושה בעיות

אתה מיסתמך שהקלט של המישתמש הוא נכון וזות הטעות הגדולה שלך

הטעות שלי זה שגיעות כתיב... :bash:

ארכיון

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

דיונים חדשים