“一百分高分悬赏,答对还有追加” (请教编程高手C++主函数传递给类指针的问题)

2024-12-27 19:46:17
推荐回答(5个)
回答1:

======================
以下代码已经调通,编译通过,
相关改的地方已经用/////////////////在后面标注了:

#include
#include

using namespace std;

#define k 10

class filter{
private:
int n;
float *m;
public:

float zz(int c,float *d ){
n=c;
m=d;
zzz( n, m);

return 1; /////////////////
}

private:

float zzz(int n, float *m){
{
//float g=0; /////////////////
//float s=0; /////////////////
int g=0;
int s=0;
for(int i=0;i{
//if *(m+g)<*(m+i) /////////////////
//g=i; /////////////////
//if *(m+s)>*(m+i) /////////////////
//s=i; /////////////////
if( m[g]if( m[s]>m[i] ) s=i;
}
*(m+g)=0;
*(m+s)=0;
for(i=0;is+=*(m+i);
s=s/(n-2);
return s;

}
}

};

void main(){
filter f1;
int i;
float a[k];
for (i=0;i{
cout<<"enter ten number"<cin>>a[i];
cout<
}
}

一点注意:
float zz(int c,float *d )
上面这个函数之前没有返回值,我强制给返回了1,你看看按照你的设计,改一下

回答2:

#include
#include
using namespace std;

#define k 10

class filter{
private:
int n;
float *m;
public:

float zz(int c,float *d ){
n=c;
m=d;
return zzz( n, m);//该函数有返回值

}

private:

float zzz(int n, float *m){
{
int g=0;//指针的增量只能是整形
int s=0;//指针的增量只能是整形
for(int i=0;i{if (*(m+g)<*(m+i))
g=i;
if (*(m+s)>*(m+i))
s=i;
}
*(m+g)=0;
*(m+s)=0;
for(i=0;is+=*(m+i);
s=s/(n-2);
return s;

}
}

};

void main(){
filter f1;
int i;
float a[k];
for (i=0;i{
cout<<"enter ten number"<cin>>a[i];
cout<
}
}

回答3:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

回答4:

指针有问题

回答5:

#include
#include
using namespace std;

#define k 10

class filter{
private:
int n;
float *m;
public:

float zz(int c,float *d ){
n=c;
m=d;
zzz( n, m);

}

private:

float zzz(int n, float *m){
{
float g=0;
float s=0;
for(int i=0;i{if &(*(m+g))<&(*(m+i) )
g=i;
if (&*(m+s)>&*(m+i) )
s=i;
}
&(*(m+g)=0;
&(*(m+s))=0;
for(i=0;is+=*(m+i);
s=s/(n-2);
return s;

}
}

};

void main(){
filter f1;
int i;
float a[k];
for (i=0;i{
cout<<"enter ten number"<cin>>a[i];
cout<
}
}