标题:为什么编译、联接都没问题,但最后说不能"written"?谢谢帮忙!
只看楼主
happysteven
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-5-12
结帖率:66.67%
已结贴  问题点数:10 回复次数:3 
为什么编译、联接都没问题,但最后说不能"written"?谢谢帮忙!
#include <iostream>
using namespace std;
class Stu
{
public:
char *name;
double score;
Stu(char *x,double y)
{
    *name=*x;
    score=y;
}
friend int bijiaoda(int a,int b)
{
    int max;
    if(a>b)
    max=a;
    else
    max=b;
    return max;
}
friend int bijiaoxiao(int c,int d)
{
    int min;
    if(c<d)
    min=c;
    else
    min=d;
    return min;
}
};
void main ()
{
    int max1,max2,max3,max4,min1,min2,min3,min4;
    char a[6]="zhang",b[5]="wang",c[5]="zhao",d[3]="li",e[5]="chen";
    char *f=&a[0],*g=&b[0],*h=&c[0],*i=&d[0],*j=&e[0];
    Stu s1(f,78),s2(g,80),s3(h,92),s4(i,65),s5(j,50);
    max1=bijiaoda(s1.score,s2.score);
    max2=bijiaoda(max1,s3.score);
    max3=bijiaoda(max2,s4.score);
    max4=bijiaoda(max3,s5.score);
    cout<<"这五个学生中的最高分是:"<<max4;
    min1=bijiaoxiao(s1.score,s2.score);
    min2=bijiaoxiao(min1,s3.score);
    min3=bijiaoxiao(min2,s4.score);
    min4=bijiaoxiao(min3,s5.score);
    cout<<"这五个学生中的最低分是:"<<min4;
}
搜索更多相关主题的帖子: written 联接 编译 
2010-10-16 10:10
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:5 
是所有的?还是前面可以,修改代码过程中再次编译不行?

如果是后者,是因为你的程序没有退出所致.

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-10-16 13:27
聋眼睛瞎耳朵
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:29
专家分:123
注 册:2010-9-24
得分:5 
程序写得有问题,类的定义写的不对,而且友元函数的定义也不行,改成这样试试!!
#include <iostream>
using namespace std;

class Stu
{
public:
    char name[10];
    int score;
    Stu(char* x,int y)
    {
        *name=*x;
        score=y;
    }
    friend int bijiaoda(int a,int b);
    friend int bijiaoxiao(int c,int d);//友元函数在类中声明,在类外定义};
int bijiaoda(int a,int b)
{
    int max;
    if(a>b)
        max=a;
    else
        max=b;
    return max;
}
int bijiaoxiao(int c,int d)
{
    int min;
    if(c<d)
        min=c;
    else
        min=d;
    return min;
}

void main ()
{
    int max1,max2,max3,max4,min1,min2,min3,min4;

    char a[6]="zhang",b[5]="wang",c[5]="zhao",d[3]="li",e[5]="chen";
    char *f=&a[0],*g=&b[0],*h=&c[0],*i=&d[0],*j=&e[0];

    Stu s1(f,78),s2(g,80),s3(h,92),s4(i,65),s5(j,50);

    max1=bijiaoda(s1.score,s2.score);
    max2=bijiaoda(max1,s3.score);
    max3=bijiaoda(max2,s4.score);
    max4=bijiaoda(max3,s5.score);

    cout<<"这五个学生中的最高分是:"<<max4<<endl;

    min1=bijiaoxiao(s1.score,s2.score);
    min2=bijiaoxiao(min1,s3.score);
    min3=bijiaoxiao(min2,s4.score);
    min4=bijiaoxiao(min3,s5.score);

    cout<<"这五个学生中的最低分是:"<<min4<<endl;
}


[ 本帖最后由 聋眼睛瞎耳朵 于 2010-10-16 14:31 编辑 ]
2010-10-16 14:29
聋眼睛瞎耳朵
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:29
专家分:123
注 册:2010-9-24
得分:0 
你这个程序还可以做一些简化:
比如求最大值,按你的来的话,就int bijiaoda(int a,int b){ return a>b?a:b;}
主函数里面的类对象的构造,也不要那么麻烦,就Stu("Zhang",78)就可以了。

你还有个错误忘记跟你说出来了,就是score定义的是double型,后来写函数时参数都是int型,参数对不上。

[ 本帖最后由 聋眼睛瞎耳朵 于 2010-10-16 15:23 编辑 ]
2010-10-16 14:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-323043-1-1.html




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

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