נשלח בתאריך: 10 May 2007 בשעה 12:06 | | IP רשוּם
|
|
|
|
השאלה היא, שצריך לקלוט איזשהו תו(a,m,M,*,^) ושני מספרים, והתוכנה צריכה לזהות מה הפעולה של התו, ולהדפיס פלט עם הפעולה על שני המספרים שהוכנסו, ותבקש עוד פעם קלט, אם הקלט הוא אינו אחד מהתוים המפורטים אז היא תציג הודעה ERROR ותבקש עוד פעם קלט, הקלט מתבצע בלולאה אינסופית עד לקליטת האות Q ואז לסיים עם ההודעה Finish . הפיתרון חייב להיות עם switch .
הבעיה היא, פתרתי את השאלה כך, בפלט של הצירוף הראשון שאני מכניס אני מקבל תשובה נכונה, אבל כשאני מכניס שורה שניה אני מקבל את ההודעה ERROR ואחרי זה רושם לי הודעת הקלט ואחריה את הודעת הפלט. וכשאני מסיים את הלולאה ורושם Q אז הוא חוזר על הלולאה עוד פעם ואני צריך לרשום עוד פעם Q כדי לסיים.
ואני לא מבין למה?? אפשר עזרה..
קוד:
#include <stdio.h> #include <conio.h> #include <math.h> #include <stdlib.h>
int main() { int x,y; char ch=0; clrscr(); while(ch!='Q') { printf("\nPlease enter the line:"); scanf("%c %d %d",&ch,&x,&y); switch (ch) { case 'a': printf("The average of the inserted numbers is:%.2lf\n",(double)(x+y)/2); break; case '*': printf("The multiply of the inserted numbers is:%d\n",x*y); break; case 'M': printf("The larger number is %d\n",max(x,y)); break; case 'm': printf("The smaller number is %d\n",min(x,y)); break; case '^': printf("The power is %d\n",pow(x,y)); break; default: printf("Error!!"); } } printf("Finish!\n"); getch(); return 0; }
|
|
|
|