原本打算选用数组这种数据结构用来存放数据,可是不确定识别出来直线的个数。想了很久决定用vector来实现 代码如下:
其中push_back要push自己循环得到的数据。
#include<vector>
using namespace std;
void main()
{
vector<int> v1;
for( int i = 0; i < 5; i++ )
{
v1.push_back(i);
}
v1.push_back(4);
vector<int>::iterator it;
vector<int>::iterator it2;
int k=0,freq=0;
int num=v1.front();
for( it = v1.begin(); it != v1.end(); it++ )
{
k=0;
for( it2 = v1.begin(); it2 != v1.end(); it2++ )
{
if(*it2==*it)
{
k++;
if(k>freq)
{
freq=k;
num=*it2;
}
}
}
}
cout<<num;
}
把数组的也贴出来便于理解,主要是循环遍历,设置一个单独区域freq和num来存放对应最大频率的值。
#include<iostream.h>
#include<vector>
using namespace std;
int num(int a[],int n)
{
int k,freq=0,num=a[0];//freq是次数 num是数
for(int i=0;i<n;i++)
{
k=0;
for(int j=0;j<i;j++)
{
if(a[j]==a[i])
{
k++;
if(k>freq)
{
freq=k;
num=a[j];
}
}
}
}
return num;
}
void main()
{
int a[]={4,5,6,4,5,4,5,4,4,4,4,1,1,1,1,1,1,1,1};
int b=num(a,19);
cout<<b;
}