PDA

View Full Version : یک الگوریتم برای مینیمم و ماکسیم در آرایه



NIMA_1981
جمعه 08 مهر 1390, 01:50 صبح
سلام دوستان من می هوام با تابع بازگشتی یک تابعی بنویسم که همزمان بتونم مقدار منیمم و ماکسیمم را در یم آرایه پیدا کنم من از این کد استفاده میکنم اما 2 تا مشکل داره


include <stdio.h>
int max;int min;
int min_max(int arr[],int index, int minIndex,int maxIndex,int size){

if (index==size){
min=minIndex;
max=maxIndex;
}
else{
if (arr[index]<arr[minIndex])
minIndex=index;
if (arr[index]>arr[maxIndex])
maxIndex=index;
return min_max(arr,index+1,minIndex,maxIndex,size);
}}




1- دو تا متغییر min & max باید همیشه بصورت عمومی باشه
2- و فراخوانی تابع باید به این شکل باشه که مقدار minindex , maxindex باید بصورت صفر نوشته بشه

min_max(a,0,0,0,5);

میشه یک روش بهتر معرفی کنید

با تشکر

quiet_programmer
جمعه 08 مهر 1390, 18:51 عصر
با سلام.

#include <stdio.h>
#include <iostream.h>

int Min,Max;
int min_max(int arr[],int index,int size)
{
if (index!=size)
{
if (arr[index]<arr[Min])
Min=index;
if (arr[index]>arr[Max])
Max=index;
return min_max(arr,index+1,size);
}
}

متغییرهای min و max باید بصورت سراسری تعریف بشن. چون تابع فقط میتونه یک مقدار رو ریترن کنه. مثلا اگه میخوای این متغیرها بصورت سراسری تعریف نشن باید دوتا تابع بنویسی یکی برای پیداکردن مین و دیگری برای مکس. یا اینکه میتونی دوتا پارامتر دیگه به اسم min و max به صورت رفرنس بزاری و خودتو خلاص کنی از تعریف سراسری.

یا حق.
موفق باشید.