עבור לתוכן

עזרה במערכים בשפת C

Featured Replies

פורסם

שלום,

אני צריך לכתוב תוכנית מסוימת שבה אחד מהסעיפים הוא לדרג עובדים במפעל ע"פ התפוקה שלהם.

עשיתי את כל התוכנית אבל נתקעתי בחלק הזה.

למעשה חישבתי את נתוני התפוקה והכנסתי אותם למערך בגודל 100 תאים כשבכל אחד מהם רשומה התפוקה של העובד המתאים.

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

תודה רבה מראש.

פורסם

מיין את המערך בסדר יורד, ואז תדפיס את 10 התאים הראשונים.

פורסם
  • מחבר

איך אני יכול למיין מערך בסדר יורד?

תודה על התייחסותך.

פורסם

זה תלוי באיזה קורס קיבלת את התרגיל ובשפת התכנות שאתה עובד בה.

אבל בגדול, תמיד אפשר לכתוב אלגוריתם מיון פשוט כמו swap sort או bubble sort. פרטים בגוגל.

עריכה: כיוון שאתה עובד ב-C, יש את qsort בספריה הסטנדרטית. לא בטוח שיתנו לך להשתמש בזה בתרגיל.

פורסם
  • מחבר

אני לומד בקורס "מבוא למדעי מחשב" בטכניון במסגרת הנדסת תעשיה וניהול. התקן של השפה שאנחנו לומדים זה ANSI 89. הפונקציות שהראת לא נילמדו אצלנו בינתיים ואני לא בטוח שאפשר להשתמש בהן.

ניסיתי לבצע את הסידור הזה דרך לולאת WHILE שרצה 10 פעמים כאשר בתוכה מתבצעת לולאת FOR 100 פעמים, העניין שאני מוצא תפוקות של עשרה עובדים שגבוהות מעובדים אחרים אבל לא בהכרח גבוהות מכל העובדים שיש..

תודה שוב פעם.

פורסם

בעיקרון אתה אמור להריץ לולאה אחת שרצה על כל המערך (ז"א על כל ה100 איברים) והיא צריכה לרוץ 10 פעם.

תראה לנו מה כתבת, יכול להיות שיש לך טעות או משהו.

פורסם
  • מחבר

עריכה:

הצלחתי בסוף לעשות את זה עם שתי לולאות מאוד פשוטות אבל האלגוריתם עצמו מאוד נחמד.

אם מישהו ירצה לדעת שיגיד..

תודה.

פורסם

אם אתה רוצה לנסות זאת קטע קוד למיון בועות כאשר N הוא גודל המערך שלך תנסה להבין אם יש לך שאלה בכייף:

void sort (double a[N])		//פונקציה למיון המערך בסדר עולה
{
int i ,j;
double temp;
for (i = 0; i < N - 1; i++) {
for (j = 0; j < N - i -1; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים