פורסם 2010 במאי 1315 שנים ערב טוב,אני צריך עזרה בבקשה. איך אני מעביר (פיזית)ערכים של מערך שיופיעו בסדר הפוך. כלומר שהערך שהיה במקום האחרון יהיה בראשון וכך הלאה. מבלי להשתמש במערך נוסף??int ReverseArray(int ar[],int){int i,j,k,l;printf("the original array is:\n");for(i=0;i<5;i++){printf("%d ",ar[i]);} for(i=0;i<5;)for(k=4;k>=0;k--){ar[k]=ar[i];}i++; //for(i=0;i<5;i++)/*j=ar[i];/*ar[k]=j;*/for(k=4;k>=0;k--)ar[k]=ar[i];/*ar[k]=j;ar[i]=ar[k];*/ printf("\nthe reverse:\n");for(i=0;i<5;i++)printf("%d ",ar[i]);return ar[i],5; }הנה חלק מהקוד שכתבתי. המערך מקבל מפונקציה קודמת ערך רנדומלי. מדפיסה אותו ואז מדפיסה אותו לאחר שינוי סדר הערכים.תודהלא משנה אפשר לנעול.למי שמתעניין הנה הפתרון:int ReverseArray(int ar[],int){int i,j;printf("the original array is:\n");for(i=0;i<5;i++){printf("%d ",ar[i]);} for(i=0;i<2;i++) { int temp=ar[i]; ar[i]=ar[4-i]; ar[4-i]=temp; } printf("\nthe reverse:\n");for(i=0;i<5;i++)printf("%d ",ar[i]);return ar[i],5; }תודה ולילה טוב!!!
פורסם 2010 במאי 1615 שנים באמת פתרון יפה ונכון אבל הוא מוגבל למערך בגודל 5 תאיםבשינויים קטנים אתה יכול להפוך את הפתרון ליותר ג'נרי (כללי למערך בכל גודל)
פורסם 2010 במאי 1715 שנים אין לי כוח להעיף מבטהפתרון הידוע לבעיה הוא כדלהלן:2 מצביעים, אחד לתחילה אחד לסוף, לבצע חילוף בין שניהםלהוריד את העליון ולהעלות את התחתוןעד שהם עוברים אחד את השניזהו
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.