怎末不输出PK结果呢

怎末不输出PK结果呢
怎末更改


#include
#include
using namespace std;
class Songer{
private:
    char name[20];
    long long fans_count;
    const int count;
public:
    Songer(){
        strcpy(name,"");
        fans_count=0;
        count=3;
    }
    songer(const Songer&song){
        strcpy(name,song.name);
        fans_count=song.fans_count;
        count=song.count;
    }
    void read(){
        gets(name);
        int fans;
        cin>>fans;
        fans_count=fans;
    }
    void Set(int num){
        fans_count=num;
    }
    ~Songer(){
        cout<<"执行析构函数"<int show_count(){
        return count;
    }
    friend void PK(Songer &a,Songer &b);
};
 void PK(Songer &a,Songer &b){
        if(a.fans_count>b.fans_count){
            cout<"战胜"<if(a.fans_count=a.fans_count){
            cout<"和"<"是平局"<if(b.fans_count"战胜"<int main(){
    Songer num1,num2,num3;
    num1.read(),num2.read(),num3.read();
    num1.show_count();
    PK(num1,num2);
    PK(num2,num3);
    PK(num3,num1);
    return 0;
}

首先,是a和b比,你两边都是a了,其次==不是=

 void PK(Songer &a,Songer &b){
        if(a.fans_count>b.fans_count){
            cout<<a.name<<"战胜"<<b.name<<endl;
        }
        if(a.fans_count==b.fans_count){
            cout<<a.name<<"和"<<b.name<<"是平局"<<endl;
        }
        if(b.fans_count<b.fans_count){
            cout<<b.name<<"战胜"<<a.name<<endl;
        }
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/745656
  • 除此之外, 这篇博客: 数据结构与算法(005):线性表-链式存储结构与单链表中的 效率PK 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    我们最后的环节是效率PK,我们发现无论是单链表插入还是删除算法,它们其实都是由两个部分组成:第一部分就是遍历查找第i个元素,第二部分就是实现插入和删除元素。

    从整个算法来说,我们很容易可以推出它们的时间复杂度都是O(n)。

    再详细点分析:如果在我们不知道第i个元素的指针位置,单链表数据结构在插入和删除操作上,与线性表的顺序存储结构是没有太大优势的。

    但如果,我们希望从第i个位置开始,插入连续10个元素,对于顺序存储结构意味着,每一次插入都需要移动n-i个位置,所以每次都是O(n)。

    而单链表,我们只需要在第一次时,找到第i个位置的指针,此时为O(n),接下来只是简单地通过赋值移动指针而已,时间复杂度都是O(1)。

    显然,对于插入或删除数据越频繁的操作,单链表的效率优势就越是明显啦~


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^