פורסם 2012 בנובמבר 1313 שנים שלום יש לי את השאלה הבאה: "קלוט 10 מספרים סכם כל שניים מהם במהלך הקליטה והדפס בכל פעם את הסכום" עכשיו חשבתי על שתי דרכים לעשות את זה אבל בשתי הדרכים התוכנית נתנה שגיאה ואני די בטוח שכתבתי את זה לא נכון אז אשמח אם תוכלו להראות לי איך עושים את זה.. אני יודע איך לקלוט 10 מספרים בלולאה אבל אני לא יודע איך במהלך הקליטה לסכם כל שניים ולהדפיס...דרך 1: #include <stdio.h> int main(void) { int num=0,a,b,c,d,e,f,g,h,i,j; while(num<10){ printf("Enter a num:"); scanf("%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j); num++; } a+=b; c+=d; e+=f; g+=h; i+=j; printf("%d",a); printf("%d",c); printf("%d",e); printf("%d",g); printf("%d",i); fflush(stdin); getchar(); return 0; } [/code]דרך 2:[code][pre]#include <stdio.h> int main(void) { int num=0,w,a,b; while(num<10){ for(w=0;w<2;w++) printf("Enter a num:"); scanf("%d",&a,&b); a+=b; num++; } printf("%d",a); fflush(stdin); getchar(); return 0; }/code][/pre]אשמח אם תוכלו לעזור לי
פורסם 2012 בנובמבר 1313 שנים ברוך הבא לפורומים שלנו. ראשית תוסיף לכותרת את תמצית הבעייה שלך. שנית, כדי שיהיה לנו למה להתייחס, תדביק כאן את הקוד שלך בתוך תגית הקוד ()
פורסם 2012 בנובמבר 1313 שנים שלום וברוך הבא לפורום.אני ממליץ לך לקרוא את ההנחיות לניסוח הודעות בפורום שפות תכנות, ולהוסיף פרטים בהתאם.
פורסם 2012 בנובמבר 1313 שנים מחבר ברוך הבא לפורומים שלנו. ראשית תוסיף לכותרת את תמצית הבעייה שלך. שנית, כדי שיהיה לנו למה להתייחס, תדביק כאן את הקוד שלך בתוך תגית הקוד () דבר ראשון תודה רבה דבר שני שמתי את זה בתור תגית קוד אבל תראה איך זה נראה...
פורסם 2012 בנובמבר 1313 שנים להבא תשים כל קטע קוד בתוך תגית קוד נפרדת, שיהיה יותר ברור. אבל למה כל הקוד שלך בשורה אחת? זה לא קריא בעליל...חוץ מזה, כמו שכתוב בהנחיות שקישרתי אליהן: תסביר מה בדיוק קורה, ואם יש שגיאה כלשהי אז תרשום אותה כאן.מהסתכלות קצרצרה על הקוד שלך, נראה לי שיש לך חוסר הבנה קל באיך שעובדות לולאות. לדוגמה, כשאתה עושה לולאה כזו:for (w=0 ; w<2 ; w++) { /// something something}אז זה אומר שגוף הלולאה יפעל פעמיים בדיוק, ולכן אם הלולאה מכילה דבר כזה:scanf("%d %d",&a,&b);אז ה-scanf הזה יתבצע פעמיים, כלומר ייקראו סה"כ 4 מספרים.ועוד פרט חשוב: כשאתה עושה for, אם אתה לא שם אחריו סוגריים מסולסלים, אז רק הפקודה הראשונה שאחריו תרוץ בלולאה. לדוגמה, אם תעשה ככה:for (w=0 ; w<2 ; w++) a+= 1; b += 1; c += 1;אז רק הפקודה a+=1 היא חלק מגוף הלולאה, ורק היא תתבצע פעמיים - כל השאר יתבצעו רק פעם אחת.
פורסם 2012 בנובמבר 1313 שנים מחבר להבא תשים כל קטע קוד בתוך תגית קוד נפרדת, שיהיה יותר ברור. אבל למה כל הקוד שלך בשורה אחת? זה לא קריא בעליל...חוץ מזה, כמו שכתוב בהנחיות שקישרתי אליהן: תסביר מה בדיוק קורה, ואם יש שגיאה כלשהי אז תרשום אותה כאן.מהסתכלות קצרצרה על הקוד שלך, נראה לי שיש לך חוסר הבנה קל באיך שעובדות לולאות. לדוגמה, כשאתה עושה לולאה כזו:for (w=0 ; w<2 ; w++) { /// something something}אז זה אומר שגוף הלולאה יפעל פעמיים בדיוק, ולכן אם הלולאה מכילה דבר כזה:scanf("%d %d",&a,&b);אז ה-scanf הזה יתבצע פעמיים, כלומר ייקראו סה"כ 4 מספרים.אני הדבקתי את הקוד שלי כשהוא מסודר נורמלי בטור אבל לאחר שעשיתי שמור הוא התבלגן... וכן ניסיתי לשים את הקוד בשתי תגיות שונות וזה לא עבד...בנוגע לcode]scanf("%d %d",&a,&b);תודה על העזרה!! באמת חידשת לי עד עכשיו עשיתי רק %d אחד פשוט... ואני לא ממש בטוח שהבנתי איך אני יכול תוך כדי קליטה של 10 מספרים לסכם כל פעם שני מספרים ולהדפיס אשמח אם תוכל להסביר לי.איך שעשיתי , אני בכיוון הנכון?
פורסם 2012 בנובמבר 1313 שנים אין צורך לצטט את ההודעה שמעליך, פשוט תלחץ על "הוספת תגובה". הפתרון השני שלך הוא בכיוון הנכון, הבעיה היא שיש לך קצת יותר מדי לולאות שם
פורסם 2012 בנובמבר 1313 שנים מחבר אוקיי פשוט חשבתי שככה רק תראה שהגבתי אממ עשיתי לולאה בתוך לולאה כלומר שלולאה אחת תעבוד עד שהיא תגיע ל10 ככה שהלולאה השנייה תמשיך לעבוד ותחשב כל שני מספרים עד שהלולאה הראשונה תגיע ל10 אני מקווה שהבנת את הכוונה שלי יש דרך יותר נכונה לעשות את זה?
פורסם 2012 בנובמבר 1313 שנים תשים לב כמה פעמים בסה"כ אתה קולט מספרים ומה הסדר הלוגי שאתה רוצה לקלוט אותם.גם לעשות לולאה בשביל 2 איטרציות זה קצת עקום.
פורסם 2012 בנובמבר 1413 שנים מחבר תשים לב כמה פעמים בסה"כ אתה קולט מספרים ומה הסדר הלוגי שאתה רוצה לקלוט אותם. גם לעשות לולאה בשביל 2 איטרציות זה קצת עקום. אני קולט בסה"כ 10 מספרים ובגלל זה שאני לא מוצא דרך אחרת חוץ מלעשות שתי לולאות אני שואל אם אתם יכולים להראות לי דרך יותר נכונה
פורסם 2012 בנובמבר 1413 שנים תחשוב על איך לפרק את הבעיה למרכיביה הבסיסיים.אמנם הבעיה אומרת לקבל 10 מספרים, אבל המספרים באים בזוגות (כי אתה צריך כל פעם לקבל 2 מספרים ולעשות עליהם פעולה מסויימת) ואין קשר בין כל זוג מספרים לכל זוג מספרים אחר שאתה מקבל.תתחיל מלפתור גרסה יותר פשוטה של הבעיה - לקבל רק זוג מספרים ולהדפיס את הסכום שלהם.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.