为啥一直输出的是0,请问是哪里出现了问题,刚开始学c语言,希望有好人帮忙解答
输入4个数 不要 加 逗号, 用空格分隔即可,或者换行输入
输入一个回车 再输入再回车就行
不知道你这个问题是否已经解决, 如果还没有解决的话:void reverse_output(Node* head)
{
Node* p = head;
if(p->next != NULL)
reverse_output(p->next);
printf("%d ", p->data);
printf("\n");
}
在这个问题中,你提到只输出了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来输出结果。这样就可以正确显示你想要的结果了。
希望对你有帮助!如果还有其他问题,请随时提问。