paradise_human
جمعه 10 اردیبهشت 1389, 23:41 عصر
سلام.
فکر میکنم این برنامه توی تخصیص حافظه مشکل داره !
کسی میتونه مشکلشو برام رفع کنه ؟
#include <iostream>
using namespace std;
class Array
{
public:
void make();
Array(int);
~Array();
void input();
void output();
void sort();
int search(float);
private:
float *a;
int size;
};
void Array::make()
{
a=new float [size];
if(a==NULL)
size=0;
}
Array::Array(int n=0)
{
size=n;
make();
}
Array::~Array()
{delete []a;}
void Array::input()
{for(int i=0;i<size;i++)
cin>>a[i];
}
void Array::output()
{for(int i=0;i<size;i++)
cout<<a[i]<<" ";
}
void Array::sort()
{
int i,j;
float t;
for(i=0;i<size-1;i++)
for(j=i+1;j<size;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int Array::search(float key)
{
for(int i=0;i<size;i++)
if(a[i]==key)
return i;
return -1;
}
void main()
{
int n,t;
float k;
Array x;
Array y;
cin>>n;
y=Array(n);
x.input();
x.sort();
x.output();
cin>>k;
t=y.search(k);
if(t!=-1)
cout<<k<<"is at index"<<t;
else
cout<<k<<"is not in Array";
}
ممنون.
فکر میکنم این برنامه توی تخصیص حافظه مشکل داره !
کسی میتونه مشکلشو برام رفع کنه ؟
#include <iostream>
using namespace std;
class Array
{
public:
void make();
Array(int);
~Array();
void input();
void output();
void sort();
int search(float);
private:
float *a;
int size;
};
void Array::make()
{
a=new float [size];
if(a==NULL)
size=0;
}
Array::Array(int n=0)
{
size=n;
make();
}
Array::~Array()
{delete []a;}
void Array::input()
{for(int i=0;i<size;i++)
cin>>a[i];
}
void Array::output()
{for(int i=0;i<size;i++)
cout<<a[i]<<" ";
}
void Array::sort()
{
int i,j;
float t;
for(i=0;i<size-1;i++)
for(j=i+1;j<size;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int Array::search(float key)
{
for(int i=0;i<size;i++)
if(a[i]==key)
return i;
return -1;
}
void main()
{
int n,t;
float k;
Array x;
Array y;
cin>>n;
y=Array(n);
x.input();
x.sort();
x.output();
cin>>k;
t=y.search(k);
if(t!=-1)
cout<<k<<"is at index"<<t;
else
cout<<k<<"is not in Array";
}
ممنون.