C++小程序练习题求助
题目 输入n个学生信息(学号id和年龄age),输出学号最大的学生的年龄 我没学C(正打算开始)但是有个思路:
把年龄全都放一起,然后循环-1,一直到最后一个值为一的出现
然后匹配,判断,输出(效率肯定低的一批)
或者用运算符排序,取最大的,然后匹配,输出 。。。。要求用类,还是结构体。这个不就是一个for循环拿到最大值嘛? 本帖最后由 倒戈卸甲 于 2020-4-24 00:32 编辑
/*
类实现
*/class Student
{
public:
Student() {
}
Student(int id,int age) {
this->id = id;
this->age = age;
}
int getId() {
return id;
}
void setId(int id) {
this->id = id;
}
int getAge() {
return age;
}
void setAge(int age) {
this->age = age;
}
private:
int id;
int age;
};
void test1() {
Student *stu= NULL;
int num;
cout << "请输入要统计的学生数量:" << endl;
cin >> num;
stu=new Student;
for (int i = 0; i < num; i++)
{
int id, age;
cout << "请输入第" << i+1 << "个学生信息:" << endl;
cout << "学号:\t";
cin >> id;
cout << "年龄:\t";
cin >> age;
stu = Student(id, age);
}
int max = 0;
for (int i =1 ; i <num; i++)
{
if (stu.getId()> stu.getId())
{
max = i;
}
}
cout << "最大学号是:"<< stu.getId() <<",这个学生的年龄是:" << stu.getAge() << endl;
delete stu;
}
/*
结构体实现
*/
struct Stu
{
int id;
int age;
};
void test2() {
Stu* stu = NULL;
int num;
cout << "请输入要统计的学生数量:" << endl;
cin >> num;
stu = new Stu;
for (int i = 0; i < num; i++)
{
int id, age;
cout << "请输入第" << i + 1 << "个学生信息:" << endl;
cout << "学号:\t";
cin >> id;
cout << "年龄:\t";
cin >> age;
stu = Stu{ id, age };
}
int max = 0;
for (int i = 1; i < num; i++)
{
if (stu.id > stu.id)
{
max = i;
}
}
cout << "最大学号是:" << stu.id << ",这个学生的年龄是:" << stu.age << endl;
delete stu;
}
在主函数中调用test1或者test2即可 倒戈卸甲 发表于 2020-4-24 00:29
在主函数中调用test1或者test2即可
感谢
页:
[1]