שאלה ב-C ..

maromnn

New member
שאלה ב-C ..

שלום, אני רוצה לעשות לקוד הבא שאם יקלידו משהו אחר חוץ מ-y או-n אז יהיה צריל להקליד שוב (בשביל תיקון):
printf("Do You want to play with the computer? Y/N: "); scanf("%c",&a);​
עכשיו, ניסיתי לעשות ככה אבל לא הלך הוא כל הזמן אמר לי לתקן שוב ושוב:
printf("Do You want to play with the computer? Y/N: "); scanf("%c",&a); while ((a != 121) || (a != 110)) { printf("Do You want to play with the computer? Y/N: "); scanf("%c",&a); }​
כאשר 121 זה האסקי של y ו- 110 זה של n .. מישהו יודע? תודה.
 

melatonin

New member
שים לב לתנאי שלך

יש לך לולאת while שרצה כל עוד a שונה מ 110 או מ 121. כמובן ש a יכול להכיל רק ערך אחד בלבד, ולכן תמיד יהיה שונה לפחות מאחד מהם, ולכן הלולאה שלך היא אינסופית.
 

פירמה 1

New member
אגב

עדיף לך לעשות כבר לולאת do-while במקום לכתוב את הקוד פעמיים
 

maromnn

New member
זה עדיין לא פתר את הבעייה..

הוא עדיין לא יוצא מהלולאה..
 

maromnn

New member
>ודה רבה עובד .. אבל

למה וגם ?? אני בעצם צריך שאם לא יהיה y או n .. לא הבנתי....
 

פירמה 1

New member
הגיון פשוט..

בזמן שהמשתנה הוא Y הוא לא יכול להיות בו זמנית גם N ואתה אמרת שכאשר המשתנה שונה מY או המשתנה שונה מN תחזור על הפעולה. כלומר עד שהמשתנה יהיה גם Y וגם N הלולאה תישאר יש מבין??
 
למעלה