שאלה בC

ידען331 

New member
שאלה בC

כתוב תוכנית את התוכנית הבאה בעזרת SWITCH-CASE . כתוב תוכנית הקולטת מספר ומדפיסה SMALL אם המספר בין 1-4 , BIG אם הוא בין 8-10 וMIDDLE אם בין 5-7 . אם המספר לא בתחום הנ"ל תודפס הודעה מתאימה. איך ניתן לבצע ? כך שיהיה גם יעיל ולא יהיה שורה 10 CASEים ?
 

zontar

New member
אם מותר גם if אז...

#include <stdio.h> #include <stdlib.h> void main() { int in; puts("enter number"); scanf("%d",&in); if(in<=4&&in>=1) in=1; else if(in>4&&in<8) in=5; else if(in>=8&&in<=10) in=10; switch(in) { case 1: puts("small"); break; case 5: puts("middel"); break; case 10: puts("big"); break; default : puts("not a valid number"); } }
 
הסבר כללי של הפתרון

ע"מ להשתמש ב-SWITCH ולא ב-if צריך קודם לאתחל משתנה counter ל-0 ואז עבור כל תנאי לעשות switch משלו(כך יהיו רק 3 switch-ים). (נניח שהמס´ שקלטנו נכנס ל-x) אז עבור התנאי הראשון:
switch( (x>=1)&&(x<=4) ) { case 1: counter++; printf("small"); break; default: break; {​
וזהו.בסוף פשוט בודקים אם ה-counter הוא אפס ואם כן מדפיסים הודעה מתאימה.
 
למעלה