| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 516 人关注过本帖
标题:通过指针指向对象,传到max() 后,比较对象中分数,输出最大分数,及相应的 ...
只看楼主 加入收藏
鸿鹄
Rank: 2
等 级:论坛游民
帖 子:51
专家分:10
注 册:2009-3-20
结帖率:75%
收藏
已结贴  问题点数:18 回复次数:3 
通过指针指向对象,传到max() 后,比较对象中分数,输出最大分数,及相应的号数?
我这样写的,但觉得好复杂啊,而且还出现很多错误,请问怎么修改?

#include <iostream>
using namespace std;
class Studentdent
{
public:
   
    Studentdent(int n, float s):num(n),score(s){};
private:
    int num;
    int score ;
};
void max( Student *a1,Student *a2,Student *a3,Student*a4, Student *a5)
{ int max;
 max=(*a1).score>(*a2).score? (*a1).score:((*a2).score>(*a3).score? (*a2).score:((*a3).score>(*a4).score ?(*a3).score :((*a4).score>(*a5).score ?(*a4).score:(*a5).score)));
   int nb;   
   return max;
   if ((*a1).score==max) nb=a1->num;
    else if ((*a2).score==max) nb=a2->num;
    else if((*a3).score==max)  nb= a3->num;
    else if((*a4).score==max) nb= a4->num;
    else  nb=a5->num;

    cout<<"最高分是"<<max<<endl;
    cout<<"该同学的学号是"<<nb;

   
}

void main()
{   
    Studentdent stu[5]={
        Student(1,80),
        Student(2,89),
        Student(3,78),
        Student(4,99),
        Student(5,68)
    };

    Studentdent *p1,*p2,*p3,*p4,*p5;
    p1=&stu[0];
    p2=&stu[1];
    p3=&stu[2];
    p4=&stu[3];
    p5=&stu[4];
   void max(p1,p2,p3,p4,p5);

}
搜索更多相关主题的帖子: 号数 max 指针 分数 对象 
2010-04-19 23:49
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:8 
class Student
{
public:
    Student(int n, float s):num(n),score(s){};
    void Show(void);
    int num;
    int score ;
};

void Student::Show(void)
{
    cout<<"同学(学号:"<<num<<")的分数是"<<score<<endl;
}
Student * max( Student *a1,Student *a2)
{
   if ( a1->score > a2->score)
        return a1;
   return a2;
}
void main()
{   
    Student stu[5]={
        Student(1,80),
        Student(2,89),
        Student(3,78),
        Student(4,99),
        Student(5,68)
    };

    Student* MaxStudent = stu[0];
    for(int i = 1 ; i < 5 ; ++i)
    {
        MaxStudent = Max(MaxStudent,&stu[i]);
     }
    cout<<"分数最高的是:"<<endl;
    MaxStudent->Show();

}
办法有很多,这个给你参考。
2010-04-20 00:35
flyingzc
Rank: 2
等 级:论坛游民
帖 子:22
专家分:13
注 册:2010-4-1
收藏
得分:1 
回复 2楼 debroa723
你的代码有错误啊,编译不通过
2010-04-20 13:26
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:9 
class Student
{
public:
    Student(int n, float s):num(n),score(s){};
    void Show(void);
    int num;
    int score ;
};

void Student::Show(void)
{
    cout<<"同学(学号:"<<num<<")的分数是"<<score<<endl;
}

Student* Max( Student* a1,Student* a2)
{
    if ( a1->score > a2->score)
        return a1;
    return a2;
}
void main()
{   
    Student stu[5]={
        Student(1,80),
        Student(2,89),
        Student(3,78),
        Student(4,99),
        Student(5,68)
    };

    Student* MaxStudent = &(stu[0]);
    for(int i = 1 ; i < 5 ; ++i)
    {
        MaxStudent = Max(MaxStudent,&stu[i]);
    }
    cout<<"分数最高的是:"<<endl;
    MaxStudent->Show();
}
没检查,有几处笔误,改过来了。

2010-04-20 21:33
快速回复:通过指针指向对象,传到max() 后,比较对象中分数,输出最大分数,及相 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021211 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved