ABA


"עזרה בתרגיל ב- C"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11033 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11033
Xtreme Sound 
חבר מתאריך 1.8.02
166 הודעות
   22:26   24.11.12   
אל הפורום  
  עזרה בתרגיל ב- C  
 
  

מה אני לא עושה בסדר?
תודה!



#include <stdio.h>
int check_sum (int k)
{
int a,b,num;
printf("Enter two integers\n");
scanf("%d%d", &a,&b);
if ((a+b)<k)
return 0;
else
{
printf("Enter another integer or -1 to exit\n");
scanf("%d", &num);
while (num!=-1)
{
if (num<a)
a=num;
if (num<b)
b=num;
if ((a+b)>k)
return;
}
}
}
void main()
{
int k;
printf ("Enter a number\n");
scanf("%d", &k);
check_sum(k);
printf ("Bye!\n");
}


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  יש פה מספר שגיאות חומוס 25.11.12 07:09 1
  מבחינת האלגוריתם כמה עוד 25.11.12 11:15 2
     בהנחה ואני לא מפספס משהו בשאלה, אין פה אפילו צורך ב2 משתנים חומוס 25.11.12 12:31 3
         צודק כמה עוד 25.11.12 12:43 4
             בדיוק חומוס 25.11.12 12:48 5
                 הבנתי, תודה על הסבלנות כמה עוד 25.11.12 13:30 6
  תודה לכולם! עזרתם לי מאוד! Xtreme Sound  25.11.12 21:08 7
  שאלה אחרונה: Xtreme Sound  26.11.12 11:02 8
     במבט חטוף הקוד נראה עדיין לא תקין חומוס 26.11.12 14:50 9
  יוליה אה? חח NoBuddy 26.11.12 19:46 10
     ברק?!! עבור אלינו! IDAN_500  26.11.12 21:54 11
     חח אכן יוליה! Xtreme Sound  26.11.12 23:07 12
         מכתב חומוס 27.11.12 18:22 13
             וואלה אתה צודק! Xtreme Sound  27.11.12 20:14 14

       
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   07:09   25.11.12   
אל הפורום  
  1. יש פה מספר שגיאות  
בתגובה להודעה מספר 0
 
1. אתה לא מאפשר קלט של יותר ממספר אחד בלולאת הelse
אתה צריך לשים קליטה של מספר חדש בסוף לולאת הwhile אחרת מה הרעיון
של לולאת הwhile.

2. כל הלוגיקה בלולאת הwhile נראית לא נכונה. אתה אמור לבוא
ללולאת הwhile כאשר הכרעת בין a ל b מי הקטן בניהם ועם המספר הזה להמשיך
לעשות את הבדיקות (אין טעם לשנות מחדש גם את a וגם את b בכל איטרציה).

3.בפרט הבדיקה בif השלישי של לולאת הwhile לא נכונה, אתה רוצה לבדוק
אם הסכום קטן מk ולא גדול מk.

מקווה שהייתי מובן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
כמה עוד לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.11.09
234 הודעות, 11 פידבק
   11:15   25.11.12   
אל הפורום  
  2. מבחינת האלגוריתם  
בתגובה להודעה מספר 0
 
   אני לא מכיר C
סתם נכנסתי לאשכול בשביל לנסות לפתור את זה
מה שצריך לעשות זה (?)
כל הזמן לבדוק מה המספרים הכי קטנים ולעשות חיבור ביניהם ולראות שהוא קטן מ K? צריך שיהיו 2 משתנים שתמיד יחזיקו את המספרים הקטנים ביותר?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   12:31   25.11.12   
אל הפורום  
  3. בהנחה ואני לא מפספס משהו בשאלה, אין פה אפילו צורך ב2 משתנים  
בתגובה להודעה מספר 2
 
מספיק להחזיק את המשתנה הקטן ביותר ואיתו לחשב את הסכום בעזרת הקלטים
שמגיעים.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
כמה עוד לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.11.09
234 הודעות, 11 פידבק
   12:43   25.11.12   
אל הפורום  
  4. צודק  
בתגובה להודעה מספר 3
 
   כלומר אני השוואה כזאת?
מספר הכי קטן+קלט < K


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   12:48   25.11.12   
אל הפורום  
  5. בדיוק  
בתגובה להודעה מספר 4
 
כי אם מספר הכי קטן + קלט < K
אז מן הסתם שגם מספר שני הכי קטן + קלט < K


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
כמה עוד לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.11.09
234 הודעות, 11 פידבק
   13:30   25.11.12   
אל הפורום  
  6. הבנתי, תודה על הסבלנות  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Xtreme Sound 
חבר מתאריך 1.8.02
166 הודעות
   21:08   25.11.12   
אל הפורום  
  7. תודה לכולם! עזרתם לי מאוד!  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Xtreme Sound 
חבר מתאריך 1.8.02
166 הודעות
   11:02   26.11.12   
אל הפורום  
  8. שאלה אחרונה:  
בתגובה להודעה מספר 0
 
   האם אפשר לייעל/לקצר עוד יותר את הקוד? תודה!


#include <stdio.h>
int check_sum (int k)
{
int a,b,low_num,num;
printf("Enter two integers\n");
scanf("%d%d", &a,&b);
if (a<b)
low_num=a;
else
low_num=b;
if ((a+b)<k)
return 1;
else
{
printf("Enter another integer or -1 to exit\n");
scanf("%d", &num);
while (num!=-1)
{
if ((low_num+num)<k)
return 1;
else
printf("Enter another integer or -1 to exit\n");
scanf("%d", &num);
}
}
}
void main()
{
int k;
printf ("Enter a number\n");
scanf("%d", &k);
check_sum(k);
printf ("Bye!\n");
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   14:50   26.11.12   
אל הפורום  
  9. במבט חטוף הקוד נראה עדיין לא תקין  
בתגובה להודעה מספר 8
 
חסרה השמה לlow_num אם הערך שהוזן בnum קטן ממנו


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
NoBuddy
חבר מתאריך 2.7.02
14473 הודעות
   19:46   26.11.12   
אל הפורום  
  10. יוליה אה? חח  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 26.11.12 בשעה 19:50 בברכה, NoBuddy
 
מה שאני עשיתי זה כמו שחומוס אמר
קבעתי min = INT_MAX
ופשוט בדקתי אם הקלט + min קטן מ k
עם בדיקה של num < min והשמה של num ב min


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
IDAN_500 
חבר מתאריך 11.12.03
2321 הודעות
   21:54   26.11.12   
אל הפורום  
  11. ברק?!! עבור אלינו!  
בתגובה להודעה מספר 10
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Xtreme Sound 
חבר מתאריך 1.8.02
166 הודעות
   23:07   26.11.12   
אל הפורום  
  12. חח אכן יוליה!  
בתגובה להודעה מספר 10
 
   אבל עדיין לא הבנתי למה חשוב לאתחל אצלי את low_num.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   18:22   27.11.12   
אל הפורום  
  13. מכתב  
בתגובה להודעה מספר 12
 
תנסה להכניס k = 8, ואת סדרת המספרים הבאה:
7
5
8
4
10
3

התכנית אמורה לעצור כשתכניס 3 כי 3 + 4 < 8
תבדוק אם אצלך היא עוצרת

מקווה שהבנת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Xtreme Sound 
חבר מתאריך 1.8.02
166 הודעות
   20:14   27.11.12   
אל הפורום  
  14. וואלה אתה צודק!  
בתגובה להודעה מספר 13
 
   לא הבנתי בהתחלה למה התכוונת בהשמה.
בעצם שכחתי לבצע בדיקה אם המס' המוזן קטן מהמס' הנמוך.

אז הוספתי בלולאת ה- while


if (num<low_num)
low_num=num;

במידה ואין לי עוד טעויות, המון תודה לך חומוס!!
כל גרגיר שלך הוא פנינה!
לילה טוב.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net