פורסם 2008 במרץ 1917 שנים שלום. יש לי מחר מבחן ב#C ויש לי בעיה שנתקלתי בה ואני לא יודע איך עושים אותה: נגיד יש לי מערך עם N תאים, ואני רוצה לדעת מה התא הכי קטן/גדול במערך, ולהציג את מספרו ותכולתו. איך אפשר לעשות את זה? אפשר אולי math.min ולשים שם FOR שירוץ על כל התאים? תודה
פורסם 2008 במרץ 1917 שנים תשים במשתנה כלשהו את הערך 0 (המיקום של התא הראשון במערך), ובמשתנה אחר את הערך שבתוך התא 0 שבמערך.עכשיו תתחיל לרוץ על המערך מהתא השני, ותבדוק אם הערך שבתוכו גדול מהערך שבתוך המשתנה עם הערך של התא הראשון, אם כן, אז תשים את הערך של התא השני בראשון, ואת האינקס של מונה הלולאה במשתנה שהחזיק את מספר התא הראשון.
פורסם 2008 במרץ 1917 שנים מחבר הממ לא ממש הבנתי, משהו כזה?int a=num[0];int b=0;for (i=1; i==N; i++) {if (num[i]>a) {a=num[i];b=i; } }
פורסם 2008 במרץ 1917 שנים int max=0;for (int i=0 ;i<a.length() ;i++) if (a[i]> max) max = a[i];return max ; a[] הוא המערך
פורסם 2008 במרץ 1917 שנים מחבר ^ זה מראה לי כמה פעמים נקלט המספר השכיח ביותר, אני רוצה לדעת איזה מספר זה ואיפה הוא נמצא במערך...לקחת את התרגיל הזה מעמוד 36 בספר "יסודות מדעי המחשב בשפת #C"? ;D
פורסם 2008 במרץ 1917 שנים int max=0;int position ;for (int i=0 ;i<a.length() ;i++) if (a[i]> max) { max = a[i]; position = i ; } max //the biggest numberposition // the index
פורסם 2008 במרץ 1917 שנים מחבר שמתי את הראשון שהבאת לי בתוך מטודה וזה עובד, וואלה מגניב... תודה ;Dהבעיה שבחלק מהתרגילים הם רוצים את הטווח של המספרים השכיחים, נגיד יש לי ציונים של 200 תלמידים מ1-100אז הם רוצים את הטווח (0-9,10-19...) של הציונים השכיחים ביותר =\אני צריך לחשוב איך עושים את זה
פורסם 2008 במרץ 1917 שנים כתבתי קוד קצת מסורבל ויתכן שיש בו שגיאות מה גם C# איני יודע , זה נכתב בסגנון JAVA public int findMax (int a[]){ int max=0; for (int i=0 ;i<a.length() ;i++) if (a[i]> max) max = i ;return max ; }public int findAverage( int b[]){ int A=0 ,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0 ; // 0<A<10 , 10 < B < 20 , 20 < C <30............. 90< k <100 for(int i ;i<b.length; i++) { if (b[i]>=0 && b[i]<10) A++; else if (b[i]>=10 && b[i]<20) B++; else if (b[i]>=20 && b[i]<30) C++; else if (b[i]>=30 && b[i]<40) D++; else if (b[i]>=40 && b[i]<50) E++; else if (b[i]>=50 && b[i]<60) F++; else if (b[i]>=60 && b[i]<70) G++; else if (b[i]>=70 && b[i]<80) H++; else if (b[i]>=80 && b[i]<90) I++; else if (b[i]>=90 && b[i]=<100) K++; } int x[] = {A ,B ,C,D,E,F,G,H,I,k} ; int average = findMax(x); return ( average+ 1) ; // 1= 0-10 , 2 = 10-20 , 3= 20-30 ..........10= 90-100 } b[] הוא מערך הציונים
פורסם 2008 במרץ 1917 שנים למה לשנות אלגוריתם מוכר?יש אלגוריתם מסודר למציאת מספר מקסימלי במערךint MaxNum=A[0];int MaxNumPos=0;for (int i=1;i<A.length;i++) if (a[i]>MaxNum) { MaxNum=A[i]; MaxNumPos=i; }זה בהנחה שהתא הראשון הוא מספר 0 וש LENGTH מחזיר את המספר של התא האחרון+1
פורסם 2008 במרץ 1917 שנים מחבר למה לשנות אלגוריתם מוכר? יש אלגוריתם מסודר למציאת מספר מקסימלי במערך int MaxNum=A[0];int MaxNumPos=0;for (int i=1;i<A.length;i++) if (a[i]>MaxNum) { MaxNum=A[i]; MaxNumPos=i; } זה בהנחה שהתא הראשון הוא מספר 0 וש LENGTH מחזיר את המספר של התא האחרון+1 תודה מגניב אתה בטוח שזה 1;i<A.length ולא 1;i<[b]=[/b]A.length מה עם התא האחרון? יש לי עוד בעיה, אני לא יודע אם מורידים מקום ממערך :\ הנה דוגמא: יש לי מערך בן 8 תאים, שבכל תא יש קוד בן 3 ספרות שמתחיל ב1 או 2 אם הוא מתחיל ב1 אני צריך להשאיר אותו במערך, אם הוא מתחיל ב2 אני צריך להעביר אותו למערך אחר. אז איך אני מצמצם את המקומות במערך הראשון? כי נגיד אם זה היה: 102,200,183... אז עכשיו זה 102,0,183 איך אני מוריד את האפס הזה? אני חושב שזה משהו עם a[i-1]
פורסם 2008 במרץ 1917 שנים תשים במשתנה כלשהו את הערך 0 (המיקום של התא הראשון במערך), ובמשתנה אחר את הערך שבתוך התא 0 שבמערך.עכשיו תתחיל לרוץ על המערך מהתא השני, ותבדוק אם הערך שבתוכו גדול מהערך שבתוך המשתנה עם הערך של התא הראשון, אם כן, אז תשים את הערך של התא השני בראשון, ואת האינקס של מונה הלולאה במשתנה שהחזיק את מספר התא הראשון.לא יעבוד עם מערך שכל האיברים בו שליליים
פורסם 2008 במרץ 1917 שנים LENGTH מחזירה את כמות התאים במערךאבל אם יש לך 8 תאים במערך במספר שלהם זה בעצם 0-7 ולא 0-8בC# לפחות----בקשר לקוד השניבהנחה שאתה לא צריך ממש לקץץ את המערך (להקטין את מספר התאים) int[] A = new int[7];//new main array int[] B = new int[7];//new sec array int i2=0; //the sec pointer for (int i=0;i<A.Length;i++) if ((A[i] / 100) == 2) { B[i2] = A[i]; A[i] = 0; i2++; } for (int i = 0; i < A.Length; i++) { if (A[i] = 0) if (i < A.Length - 1) A[i] = A[i + 1]; }מסורבל,ארוך ולדעתי קצת מעפאן אבל לפחות עובד
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.