gpt4 book ai didi

C++链表指针总是nullptr

转载 作者:行者123 更新时间:2023-11-30 02:14:28 27 4
gpt4 key购买 nike

<分区>

我正在尝试解决这个练习,但我找不到我的错误。这个练习要求我们操作任意大小的正整数。为此,我们通过首先存储低权重数字来选择数字简单链表形式的表示。

我被要求完成 lecture_nombredisplay_nombre 功能....但是,问题主要出在程序没有进入if( n != nullptr ) 循环。

这是我的代码:

#include <iostream>
#include <cctype>
#include <fstream>
using namespace std;

struct Chiffre {
unsigned int chiffre_; /**< single number between 0 et 9 */
Chiffre * suivant_; /**< pointer towards the next number with a heavier weight (for example 2 for 25 ou nullptr */
};

typedef Chiffre* Nombre;
void insertNode(unsigned int n, Nombre head, Nombre tail);
Nombre lecture_nombre( std::istream & in );
void display_nombre( Nombre n, std::ostream & out );

// The main is given by the teacher
int main(){
while( true ) {
Nombre n = lecture_nombre( std::cin );
if( n != nullptr ) {
std::cout << "lu : ";
display_nombre( n, std::cout );
std::cout << "\n";
//detruit_nombre( n );
}
else break;
}
return 0;
}
// d is a single digit number and I have to add it into the chained list and return the results
Nombre lecture_nombre( std::istream & in )
{
*//Nombre res = nullptr;
Nombre head = nullptr;
Nombre tail = nullptr;

while( in.good() ) {
char c = in.get();
if( std::isdigit( c )) {
unsigned int d = c - '0';
// my code starts here :
insertNode(d,head,tail);

}
else break;
}
return head;
}
// my code starts here
void insertNode(unsigned int n, Nombre head, Nombre tail){
struct Chiffre *newChiffre = new Chiffre;
newChiffre->chiffre_ = n;
newChiffre->suivant_ = nullptr;
cout << "Insert Node :" << newChiffre->chiffre_ << endl;
if (head==nullptr){
head = newChiffre;
tail = newChiffre;
}else{
tail->suivant_ = newChiffre;
tail = tail->suivant_;
}
}

void display_number( Nombre n, std::ostream & out ){
if(n==nullptr){
cout << n << endl;
}else{
cout << n->chiffre_ <<endl;
display_number(n->suivant_,out);
}
}

我验证了节点已创建但无法显示数字,程序将 n 作为 nullptr 所以它从未进入 if( n != nullptr )循环...

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com