עבור לתוכן

מערך C

Featured Replies

פורסם

ערב טוב,

אני צריך עזרה בבקשה. איך אני מעביר (פיזית)ערכים של מערך שיופיעו בסדר הפוך. כלומר שהערך שהיה במקום האחרון יהיה בראשון וכך הלאה. מבלי להשתמש במערך נוסף??

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;
}

תודה ולילה טוב!!!

פורסם

באמת פתרון יפה ונכון אבל הוא מוגבל למערך בגודל 5 תאים

בשינויים קטנים אתה יכול להפוך את הפתרון ליותר ג'נרי (כללי למערך בכל גודל)

פורסם

אין לי כוח להעיף מבט

הפתרון הידוע לבעיה הוא כדלהלן:

2 מצביעים, אחד לתחילה אחד לסוף, לבצע חילוף בין שניהם

להוריד את העליון ולהעלות את התחתון

עד שהם עוברים אחד את השני

זהו

ארכיון

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

דיונים חדשים