#include
#include
using namespace std;
class order
{
private:
typedef struct
{
string name;
string number;
int score;
}grade[10000];
int sum;
int max = 0;
int min = 0;
public:
void update();
void print();
};
void order::update()
{
int i;
cin >> sum;
for (i = 0; i {
cin >> grade[i].name;
cin >> grade[i].number;
cin >> grade[i].score;
if (grade[i].score>grade[max].score)
{
max = i;
}
if (grade[i].score<grade[min].score)
{
min = i;
}
}
}
void order::print()
{
cout <<grade[max].name << ' ' << grade[max].number << endl;
cout <<grade[min].name << ' ' << grade[min].number;
}
int main()
{
order s;
s.update();
s.print();
return 0;
}
这段程序为什么编译老有错误?求大神讲解一下
c++中有max min函数,你不能再用它们作为变量名。
LZ代码没有复制完毕
#include "请使用这种格式来贴代码"
相信你已解决!
你没有说明代码的功能和要求,并且代码给出的不是十分完整,存在很多错误,我只能猜测你的意图,给你写了一段代码,我自己已经编译通过了,希望可以采纳。
#include
#include
using namespace std;
struct grade
{
string name;
string number;
int score;
};
class Order
{
private:
grade *stuGrade;
int num; //人数
int min; //最小成绩的位置
int max; //最大成绩位置
void update(); //找到最高成绩,和最低成绩的位置;
public:
Order(grade *stu, int mun);
~Order() { delete[] stuGrade; }
void print(); //打印最高成绩,和最低成绩单
};
Order::Order(grade *stu, int num):num(num)
{
stuGrade = new grade[num];
for (int i = 0; i < num; i++)
{
stuGrade[i].name = stu[i].name;
stuGrade[i].number = stu[i].number;
stuGrade[i].score= stu[i].score;
}
update();
}
void Order::update()
{
int tabMin = stuGrade->score;
int tabMax = tabMin;
for (int i = 0; i < num; i++)
{
if (stuGrade[i].score < tabMin)
{
min= i;
tabMin = stuGrade[i].score;
}
if (stuGrade[i].score > tabMax)
{
max= i;
tabMax = stuGrade[i].score;
}
}
}
void Order::print()
{
cout << stuGrade[min].name << " " << stuGrade[min].number<<" 成绩:"<< stuGrade[min].score << endl;
cout << stuGrade[max].name << " " << stuGrade[max].number << " 成绩:" << stuGrade[max].score << endl;
}
int main()
{
grade stu[4] = { {"Pengzi","1101",78},{"Liliy","1102",97},{"Dany","1103",56} ,{"Mary","1104",63} };
Order order(stu, 4);
order.print();
return 0;
}
上面的头文件没有显示的是:iostream和string