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

编的是一段求平均值的程序,运行报错说:指针运算出了问题,好像是对类进行指针传递不被程序认可,不知道如何修改,还请各位大虾帮忙,小生在此感激不尽!#include<iost... 编的是一段求平均值的程序,运行报错说:指针运算出了问题,好像是对类进行指针传递不被程序认可,不知道如何修改,还请各位大虾帮忙,小生在此感激不尽!

#include<iostream>
#include<stdlib.h>
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<n;i++)
{if *(m+g)<*(m+i)
g=i;
if *(m+s)>*(m+i)
s=i;
}
*(m+g)=0;
*(m+s)=0;
for(i=0;i<n;i++)
s+=*(m+i);
s=s/(n-2);
return s;

}
}

};

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

}
}

运行报错,
error C2059: syntax error : '*'
cpp(29) : error C2059: syntax error : '*'
cpp(32) : error C2111: pointer addition requires integral operand
cpp(33) : error C2111: pointer addition requires integral operand
执行 cl.exe 时出错.
展开
 我来答
希声和寡
推荐于2016-08-17 · TA获得超过2.6万个赞
知道大有可为答主
回答量:6437
采纳率:0%
帮助的人:4125万
展开全部
======================
以下代码已经调通,编译通过,
相关改的地方已经用/////////////////在后面标注了:

#include<iostream>
#include<stdlib.h>

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<n;i++)
{
//if *(m+g)<*(m+i) /////////////////
//g=i; /////////////////
//if *(m+s)>*(m+i) /////////////////
//s=i; /////////////////
if( m[g]<m[i] ) g=i;
if( m[s]>m[i] ) s=i;
}
*(m+g)=0;
*(m+s)=0;
for(i=0;i<n;i++)
s+=*(m+i);
s=s/(n-2);
return s;

}
}

};

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

}
}

一点注意:
float zz(int c,float *d )
上面这个函数之前没有返回值,我强制给返回了1,你看看按照你的设计,改一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清澈且谦卑灬典范
2008-12-19 · TA获得超过262个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:294万
展开全部
#include<iostream>
#include<stdlib.h>
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<n;i++)
{if (*(m+g)<*(m+i))
g=i;
if (*(m+s)>*(m+i))
s=i;
}
*(m+g)=0;
*(m+s)=0;
for(i=0;i<n;i++)
s+=*(m+i);
s=s/(n-2);
return s;

}
}

};

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

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
597120269
2008-12-20 · TA获得超过572个赞
知道答主
回答量:43
采纳率:0%
帮助的人:19.3万
展开全部
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

参考资料: aaaaaaaaaaaa

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朋行天下DE
2008-12-19 · 超过44用户采纳过TA的回答
知道答主
回答量:257
采纳率:0%
帮助的人:0
展开全部
指针有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浅钱3k
2008-12-19 · 超过29用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:97.1万
展开全部
#include<iostream>
#include<stdlib.h>
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<n;i++)
{if &(*(m+g))<&(*(m+i) )
g=i;
if (&*(m+s)>&*(m+i) )
s=i;
}
&(*(m+g)=0;
&(*(m+s))=0;
for(i=0;i<n;i++)
s+=*(m+i);
s=s/(n-2);
return s;

}
}

};

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

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式