שיחה:שפת C/תנאים ולולאות/תרגילים
הוספת נושאמראה
תגובה אחרונה: לפני 16 שנים מאת Thedsadude בנושא טעות בפתרון שאלה 5
פתרון שאלה 4
[עריכה]הפתרון מסורבל שלא לצורך. ברור לי שכדאי להדגים שימוש ב-Case, אבל יותר חשוב אפילו להדגים כתיבה של תוכניות פשוטות וחכמות ככל האפשר, ולא להשתמש בדברים שלא לצורך. הנה הצעה שלי לפתרון פשוט יותר:
#include<stdio.h> void main() { int i,num,kind; printf("Please enter 1 number"); scanf("%d",&num); printf("what kind of numbers would you like?"); scanf("%d",&kind); if (kind!=1 && kind!=2) { printf("You entered wrong input"); kind=num+1; } for(i=kind;i<=num;i+=2) { printf("%d ",i); } }
לתת דוגמה לשימוש ב-Case אפשר ורצוי בתרגיל אחר. גדי אלכסנדרוביץ' 10:36, 11 פברואר 2006 (UTC)
- האמת שגם אני ראיתי שזה היה פתרון מסורבל פשוט רציתי לראות קודם אם אפשר להשתמש ב-case בתרגיל הבא ואז רציתי לתקן.. בכל מקרה הפתרון שלך מעולה, אני יחליף את שלי עכשיו בשלךחורחה 10:58, 11 פברואר 2006 (UTC)
טעות בפתרון שאלה 5
[עריכה]- בפתרון שאלה 5, יש הנחה שערך הזבל בUserResponse איננו 2 מיד בתחילת התכנית. אין שום דבר בשפה שמבטיח זאת, וזה פשוט מקרי שזה עובד. אני אחליף ללולאת do-while.
- אין שום סיבה שUserResponse לא יוגדר בבלוק פנימי יותר.
- הקוד כולל מספר שורות משוכפלות.