gpt4 book ai didi

c++ - 我正在尝试计算这个连分数,但我似乎无法工作,但是该程序可以正确编译但在工作时崩溃

转载 作者:行者123 更新时间:2023-11-28 04:29:25 24 4
gpt4 key购买 nike

我试图让这个程序工作,因为它需要计算链表中输入的连分数。该程序没有显示任何错误,但它总是在中间崩溃。有人可以帮助我吗?

任务很简单,就是把程序存储在一个链表上,然后从链表中取参数进行计算。它是连分数。

#include <iostream>
#include <cmath>
using namespace std;
struct node
{
int data;
node *next;
} *h=nullptr, *t=nullptr;

float calculation (int co)
{
float a,c;
node *b,*f;
b->next = f;

while(co != 0)
{
f = t;
a = (float)f->data;
a = 1/a;
c = (float)b->data;
a = c + a;
t = b;
co--;

}

return a;
}

void storedata (int& c)
{
node *n = new node;
n->data = c;
n->next = nullptr;
cout<<n->data<<endl;
if(h==nullptr)
{
h=n;
t=n;
n=nullptr;
}
else
{
t->next=n;
t=n;
}

}
void formula (int a, int b, int co)
{
int c;
int z;
while (co!=0)
{
c = a/b;
storedata(c);
z = b*c;
z = a-z;
a = b;
b = z;
co--;
}
}

int main ()
{
int a,b,c,z,co,d;
float e;

a = 123;
b = 100;
co = 5;
formula (a,b,co);
e = calculation(co);
cout<<"cf1 = 123/100 ="<<e;
}

最佳答案

至少有以下问题(其中一些会在启用警告的情况下被捕获,例如 -Wall):

  1. 使用未初始化的指针,例如节点 *b,*f; b->next = f;.这会导致未定义的行为。

  2. new 但没有delete 任何地方,因此会出现内存泄漏。

关于c++ - 我正在尝试计算这个连分数,但我似乎无法工作,但是该程序可以正确编译但在工作时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53320257/

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