PDA

View Full Version : برنامه نویس حرفه ای با ++c



oranoos_mt
چهارشنبه 05 اردیبهشت 1386, 23:50 عصر
چرا این برنامه min تکرارو بد ست نمیاره ولی
max تکرارو بد ست میاره؟ مشکل کجاست؟

اینم کد برنامه

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

emad_67
پنج شنبه 06 اردیبهشت 1386, 20:21 عصر
به نظرم خیلی طولانی نوشتی متاسفانه وقت نکردم ببینم مشکل برنامت کجاست ولی اینو برات نوشتم:

#include <iostream.h>
void find(float []);
void main()
{
float arr[5];
cout<<"enter 5 numbers:";
for(int i=0;i<5;i++)
cin>>arr[i];
find(arr);
}
void find(float arr[])
{
int max_c=0,min_c=0;
float max=arr[0];
float min=arr[0];
for(int i=0;i<5;i++)
if(arr[i]>max)
max=arr[i];
else if(arr[i]<min)
min=arr[i];

for(int j=0;j<5;j++)
if(arr[j]==max)
max_c++;
else if(arr[j]==min)
min_c++;
cout<<min<<" is min and min repeat is: "<<min_c<<endl;
cout<<max<<" is max and max repeat is: "<<max_c<<endl;

http://toppc.persiangig.com

oranoos_mt
جمعه 07 اردیبهشت 1386, 17:56 عصر
سلام
میخواستم راجع به برنامه یه توضیحی بدم
برنامه ای که من میخواستم این بود که
max و min
تکرار اعداد را بدست بیاره مهم نیست که عدد
max و min
باشه مهم اینه که بیشترین تکرار را بگه واسه کدوم عدد و کمترین تکرار واسه کدوم عدد
ولی در برنامه شما بیشترین تکرار عدد بزرگ و کمترین تکرار عدد کوچک را محاسبه می کنه

RED-C0DE
یک شنبه 09 اردیبهشت 1386, 00:21 صبح
#include <iostream>
#include <vector>
using namespace std;
const int _SZ = 5;
struct stu
{
int num;
int count;
};
vector<stu> vec;
stu tmpStu;

char Exist(int num , int & index)
{
int sz = vec.size();

for(index =0; index <sz; index ++)
if(vec[index].num== num)
return 1;

return 0;
}
int Find_Max_Iteration()
{
int maxIndex = 0;
int sz = vec.size();

for(int index=1; index<sz; index++)
if(vec[index].count > vec[maxIndex].count)
maxIndex = index ;

return maxIndex;
}

int Find_Min_Iteration()
{
int minIndex = 0;
int sz = vec.size();

for(int index=1; index<sz; index++)
if(vec[index].count < vec[minIndex].count)
minIndex = index ;

return minIndex;
}

int main()
{
int index =0;
for(int i=0; i<_SZ; i++)
{
cin >> tmpStu.num;

if(Exist(tmpStu.num , index))
vec[index].count ++;
else
{
tmpStu.count=1;
vec.push_back(tmpStu);
}
}

int maxIndex = Find_Max_Iteration();
int minIndex = Find_Min_Iteration();

cout << "MAX Count = The number " << vec[maxIndex].num << " with " << vec[maxIndex].count << " iteration.\n";
cout << "MIN Count = The number " << vec[minIndex].num << " with " << vec[minIndex].count << " iteration.\n";

return 0;
}