שיחה:שפת C/תנאים ולולאות/תרגילים

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש

פתרון שאלה 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[עריכה]

  1. בפתרון שאלה 5, יש הנחה שערך הזבל בUserResponse איננו 2 מיד בתחילת התכנית. אין שום דבר בשפה שמבטיח זאת, וזה פשוט מקרי שזה עובד. אני אחליף ללולאת do-while.
  2. אין שום סיבה שUserResponse לא יוגדר בבלוק פנימי יותר.
  3. הקוד כולל מספר שורות משוכפלות.

Thedsadude 12:52, 23 בנובמבר 2007 (IST)[תגובה]