פורסם 2007 באוקטובר 218 שנים הי חברהיש לי שאלהמערך בן 128 מקומותממולא במפסרים אקראים...אחרי המילוי צריך למיין אותו בשיטתselectעשיתי וזה לא מחזיר את זה ממוין חחח איך אני קורא לפונקציהתעזרו לי בבקשה עם הקוד!תודה רבה#include <stdio.h>#include <stdlib.h>#include <math.h>#include <time.h>#include <conio.h> #define n 128void select(int a[],int size){ int i,j,temp; for(i=0;i<size-1;i++) { for(j=i+1;j<size;j++) if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } }}void main(){ randomize(); clrscr(); int a[n],i,j; //klita for(i=0;i<n;i++) a[i]=random(5000)+1; //hadpasa for(i=0;i<n;i++) Select(a[i],n); printf("%5d",a[i]); printf("\n"); getch();}
פורסם 2007 באוקטובר 218 שנים הוא לא נותן לך הערה בקומפילציה?הבעיות ששמתי לב אליהן:1) אתה צריך לשלוח לפונקציה את המערך, לא איבר איבר(כפי שהחתימה מבקשת).select(a, n);2) תשמור על הזחות נכונות.3) מומלץ לשים אחרי כל תנאי ולולאה בלוק של קוד(ולא שורה בודדה). הבלוק עצמו יכול להיות בנוי משורה אחת.
פורסם 2007 באוקטובר 218 שנים מחבר זה עדין כותב לי שגיאההוא עושה:select shoulde have prototypeמישהו מוכן לתקן את הקוד ולהראות לי פה?
פורסם 2007 באוקטובר 218 שנים אני לא הכי בקיא בכל השמות שונים שיש לשיטות מיון שונות אבל SELECTזה לא מיון שבוחר מספר מן המערך ומחלק את כל המספרים לאלה שגדולים, קטנים ושווים אליו עד שאתה מגיע למערך בגודל 1?וכדי לבדוק איפה אתה טועה אתה יכול להדפיס כל פעם שאתה מבצע שינוי..
פורסם 2007 באוקטובר 218 שנים אני לא יודע אם השגיאה במקור (או שנבעה מההעתקה לפורום), אבל ב-main קראת לפונקציה Select, עם S גדולה. C היא case sensitive, ככה שאתה חייב לקרוא לפונקציה באותו שם (select). הקומפיילר חשב שאתה מנסה לגשת לפונקציה בשם Select, ולכן צעק כשלא מצא אותה.
פורסם 2007 באוקטובר 218 שנים ב-posix יש כבר פונקציה שנקראת select. למרות שלא סביר שזה מפריע לך, עדיין עדיף שתתן שם אחר לפונקציה שלך.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.