עזרה קטנטנה

nightmare89

New member
עזרה קטנטנה

אממ שלום ויום טוב קודם כל :) יש לי בעיה קטנטנה.. אני אתן לכם את השאלה ואת הפיתרון עכשיו, הפיתרון פועל בלי קריאות של הקומפיילר אבל לא פועל חלק אם תפעילו אצלכם בתוכנה(במידה ויש לכם) תראו לבד את הבעיה.. תודה מראש. שאלה: 2.תוכנית הקולטת 20 מספרים למערך A ו-20 למערך B. על התוכנית לבנות מערך C ממספרים שמופיעים רק באחד מן המערכים. על התוכנית להדפיס את שלושת המערכים.
 

nightmare89

New member
אופס

שכחתי את הקוד חיחי הנה:
#include <stdio.h> #define n 4 void main() { int a[n],b[n],c[n]={0},i,Xc,countc=0; for(i=0;i<n;i++) { printf("enter number for array a\n"); scanf("%d",&a); }//for for(i=0;i<n;i++) { printf("enter number for array b\n"); scanf("%d",&b); }//for for(Xc=0;Xc<n;Xc++) { for(i=0;i<n;i++) { if (a[Xc] != b) { c[countc]=a[Xc]; countc++; }//if }//for }//for for(i=0;i<countc;i++) printf("%5d",c); printf("\n\n"); }//main
 

DadleFish

New member
השאלה מבקשת ממך

להכניס למערך C רק משתנים שמופיעים בשני המערכים. הכיוון נכון, אבל השאלה שאתה שואל היא:
if (a[Xc] != b)

וזה אומר שאתה מנסה להכניס כל משתנה *שונה* לתוך המערך C. זו כמובן לא המטרה, ויתרה מכך, אתה חורג מגודל המערך C (שהוא 4 מספרים), ולכן התוכנית מתעופפת. כמו כן, שים לב למצב קיצוני, נגיד שיש לך ב-A את המשתנים {10,10,20,20} ובמערך B את {10,20,30,40}, עליך להכניס ל-C את המספרים 10 ו-20, כל אחד פעם אחת בלבד!
 

nightmare89

New member
אממ

הקטע עם ה4 זה כמובן דוגמא שאני לא אצטרך כמו דפוק 40 פעם להקיש.. אז זה 4 לגבי הטעות הבנתי אותה.. אני צריך מספרים שנמצאים "או" במערך A "או" במערך B אבל איך אני מתקן את הטעות?
 

DadleFish

New member
תחשוב על הלוגיקה שכתבת בתוך

הלולאה המקוננת שלך. משהו שם שגוי. לא דיברתי על ה-4 ספציפית, אין לי בעיה עם ה-4. הבעיה היא שאתה עושה בדיוק את ההיפך ממה שאתה צריך לעשות, ובדרך אתה גם דורס זכרון.
 
למעלה