c++对象数组 计算问题

用对象数组分别对三个销售员的销售员号、销售件数和销售单价赋值
Commodity com[3]={{101,5,23.5},{102,12,24.56},{103,100,21.5}};
现已知对购买十件以上者要打98折,要求每件商品的平均售价。

图片说明
这样写为什么不对呢?? quantity和price我都放在了public里,discount是静态数据成员。求大神指教??
图片说明
图片说明
图片说明

程序已验证
#include
using namespace std;
class Commodity
{
private:
int num;
int quantity;
float price;
static float discount;
static float sum;
static int n;
public:
Commodity(int num,int q,float p);
~Commodity();//析构函数
static float average();//求平均售价函数声明
static void display();
};
float Commodity::discount=0.98;
float Commodity::sum=0;
int Commodity::n=0;
Commodity::Commodity(int num,int q,float p)
{
num=num;quantity=q;price=p;
n+=q;
sum+=q*p;
}
Commodity::~Commodity(){}
float Commodity::average()
{
if(n==0)return 0;
else return sum/n;
}
void Commodity::display()
{
cout<<"***n"<<n<<endl;//+=c1.quantity;
cout<<"总销售款:"<<sum<<"\t平均售价:"<<average()<<endl;
}
int main()
{
Commodity c1(101,5,23.5),c2(102,12,24.56),c3(103,100,21.5);
c1.display();
c2.display();
Commodity::display();
}

lz最好能把所有代码贴出来

话说我真心看不懂你的sum是哪里来的。直接写个sum~又没定义~写成commodity:sum吧。还有根本不用定义sum1,sum2,直接commodity:sum累加啊

突然发现你写的不对啊。com[0]加了两次啊,第一次不打折,那么循环i从1开始~且i<=3啊。

我感觉这个题目出的有问题!销售总量n作为静态变量不能改变,那就不能计算。主函数给你改了下,相互交流吧,我只能改到这个程度了……
static void display()
{
cout<<"总销售款:"<<sum<<"\t平均售价:"<<price;
}

main()
{
******* //你的程序 第一行不变
for(int i=0;i<3;i++)
{
cout<<com[i].num<<"号销货员"<<com[i].display()<<endl;
}
}

#include
using namespace std;
class Commodity
{
private:
int num;
int quantity;
float price;
static float discount;
static float sum;
static int n;
public:
Commodity(int num,int q,float p);//构造函数声明
~Commodity();//析构函数声明
static float average();//求平均售价
static void display();
};
//静态数据成员初始化
float Commodity::discount=0.98;
float Commodity::sum=0;
int Commodity::n=0;
Commodity::Commodity(int num,int q,float p)//构造函数定义
{
num=num;quantity=q;price=p;
n+=q;
sum+=q*p;
}
Commodity::~Commodity(){}//析构函数定义
float Commodity::average()//返回平均售价
{
if(n==0)return 0;
else return sum/n;
}
void Commodity::display()//输出显示
{
cout<<"总销售款:"<<sum<<"\t平均售价:"<<average()<<endl;
}
int main()
{
Commodity c1(101,5,23.5),c2(102,12,24.56),c3(103,100,21.5);
c1.display();
c2.display();
Commodity::display();
}

连个判断都没有...