关于#输出#的问题,如何解决?

为啥一直输出的是0,请问是哪里出现了问题,刚开始学c语言,希望有好人帮忙解答

img

输入4个数 不要 加 逗号, 用空格分隔即可,或者换行输入

输入一个回车 再输入再回车就行

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7799239
  • 这篇博客也不错, 你可以看下C语言学习,有一个已排好序的数组,要求输入一个数字后,按原来的排序规律将它插入数组
  • 除此之外, 这篇博客: c语言逆向输出链表中的值中的 ?3 最简单的一种方法来啦,既然都想到用栈啦,那就很自然想到用递归来实现。即每当访问一个节点的时候,先递归输出它后面的节点,在输出自身的节点,这样链表就反向输出啦 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    void reverse_output(Node* head)
    {
    	Node* p = head;
    	if(p->next != NULL)
    		reverse_output(p->next);
    
    	printf("%d ", p->data);
    
    	printf("\n");
    
    }
    
    
  • 您还可以看一下 黄强老师的30分钟彻底学会C语言指针视频教程课程中的 指针玩转一维数组小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    在这个问题中,你提到只输出了0。根据提供的代码和参考资料,问题可能出现在给成员变量赋值时。

    在给成员变量赋值之前需要使用set函数来设置成员变量的值。所以在main函数中,你需要调用setname、setage和setscore函数来给对应的成员变量赋值。这样才能正确显示你想要的结果。

    具体的解决方案如下:

    #include <iostream>
    using namespace std;
    
    class Student{
    private:  
        char *m_name;
        int m_age;
        float m_score;
    public:  
        void setname(char *name);
        void setage(int age);
        void setscore(float score);
        void show();
    };
    
    void Student::setname(char *name){
        m_name = name;
    }
    void Student::setage(int age){
        m_age = age;
    }
    void Student::setscore(float score){
        m_score = score;
    }
    void Student::show(){
        cout << m_name << "的年龄是" << m_age << ",成绩是" << m_score << endl;
    }
    
    int main(){
        Student stu;
        stu.setname("小明");  // 使用setname函数给m_name赋值
        stu.setage(15);      // 使用setage函数给m_age赋值
        stu.setscore(92.5f); // 使用setscore函数给m_score赋值
        stu.show();          // 输出结果
    
        Student *pstu = new Student;
        pstu->setname("李华");   // 使用setname函数给m_name赋值
        pstu->setage(16);        // 使用setage函数给m_age赋值
        pstu->setscore(96);      // 使用setscore函数给m_score赋值
        pstu->show();            // 输出结果
    
        delete pstu;             //释放堆上的对象
        return 0;
    }
    

    以上代码中,我们在main函数中使用setname、setage和setscore函数来给成员变量赋值,并且在show函数中调用了cout来输出结果。这样就可以正确显示你想要的结果了。

    希望对你有帮助!如果还有其他问题,请随时提问。


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