چطور میشه تو آرایه ها max تکراروmin تکرارو بدست اورد
منظورم اینه که فرض کنیم معدل 50 تا دانشجو رو گرفتیم میخواهیم بدونیم که بیشترین تکرار واسه چه معدلیه یا کمترین تکرار کودوم معدله؟ مثلا 14.53 بیشترین تکرار باشه
Printable View
چطور میشه تو آرایه ها max تکراروmin تکرارو بدست اورد
منظورم اینه که فرض کنیم معدل 50 تا دانشجو رو گرفتیم میخواهیم بدونیم که بیشترین تکرار واسه چه معدلیه یا کمترین تکرار کودوم معدله؟ مثلا 14.53 بیشترین تکرار باشه
یه ارایه بسازید از تکرار ها و بعد توی اون ماکزیمم رو پیدا کنید
یه حلقۀ تو در تو بسازید و هر دفعه یکی رو چک کنید که چند تا از اون وجود داره.
min رو هم همینجوری حساب کن.کد:int max=0;
int maxIndex=0;
for(int i=0;i<n;i++)
{
int count=0;
for(int j=0;j<n;j++)
{
if( moaddel[i] == moaddel[j] )
count++;
}
if( count>max)
{max = count; maxIndex=i;}
}
من یه چیزایی نوشتم max تکرارو جواب میده ولی min تکرارو نه
مشکل کجاست اینم کد برنامه
#include <iostream.h>
#include <conio.h>
void findt(float arr[],int k);
int main()
{
const int k=5;
float arr[k]; int i;
clrscr();
cout<<"ebter 5 number"<<endl;
for (i=0 ; i < k ; i++)
cin>>arr[i];
findt(arr,k);
return 0;
}
void findt(float arr[],int k)
{
int maximum=-1; int minimum=0;
float max_valu,min_val;
int i,j,curent_count,curent_coun;
float maxindex,minindex;
for (i=0 ; i<k ; i++)
{
maxindex=arr[i];
minindex=arr[i];
curent_count=0; curent_coun=0;
for(j=0; j<k ; j++)
{
if (arr[j]==maxindex)
curent_count++;
if (arr[j]==minindex)
curent_coun++;
if(curent_count>maximum)
{
maximum=curent_count;
max_valu=maxindex;
}
else if(curent_coun<minimum)
{
minimum=curent_coun;
min_val=minindex;
}//end of if
}//end of for (i=9;i<k...)
}
cout<<"max iteration of ave is---->";
cout<<max_valu<<" &max repaeat is --->"<<maximum<<endl;
cout<<"min iteration of ave is---->";
cout<<min_val<<" &min repaeat is --->"<<minimum<<endl;
}
کد for(i یکم اشکال داشت:
ببین for(j باید کجا تموم بشه.کد:for (i=0 ; i<k ; i++)
{
curent_count=0; curent_coun=0;
for(j=0; j<k ; j++)
{
if (arr[j]==arr[i])
curent_count++;
if (arr[j]==arr[i])
curent_coun++;
}// here
if(curent_count>maximum)
{
maximum=curent_count;
max_valu=arr[i];
}
else if(curent_coun<minimum)
{
minimum=curent_coun;
min_val=arr[i];
}//end of if
}
در ضمن باید مقداراولیۀ minimum باید k+1 باشه.
و این:کد:int minimum=k+1;
باید بشه:کد:else if(curent_coun<minimum)
چون درسته که هیچ وقت این دو تا با هم رخ نمی دن ولی در اولین دور حلقه جفت شرطها با هم بر قرار میشه. پس نباید else گذاشت.کد:if(curent_coun<minimum)
در ضمن کدتون رو در تگ code بگذارید:
کد:[ c o d e ]
.
.
Your code
.
.
[ / c o d e ]
ببینید من هر کاری کردم نتونستم به جواب برسم اگه میشه یکم بیشتر کمک کنید