שיחה:שפת C/תנאים ולולאות/תרגילים
הוספת נושאמראה
תגובה אחרונה: לפני 18 שנים מאת 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 לא יוגדר בבלוק פנימי יותר.
- הקוד כולל מספר שורות משוכפלות.