c++-编译通过了,但是却运行出错是为啥....C++新手通宵第一晚求助

问题描述

编译通过了,但是却运行出错是为啥....C++新手通宵第一晚求助

#include
using namespace std;
struct Node
{
int E;
double C;
Node next;
};
int length(Node
a)
{
int i=0;
Node* p=a->next;
while(p)
{
i++;
p=p->next;
}
return i;
}
void kingofjdashen(Node* a,Node* b)
{
int c[100]={100};
double d[100]={0};
double e,f;
int g,h;
for(int i=0;i
Node* k=a->next;
e=k->C;
h=k->E;
for(int j=0;j
{
Node* l=b->next;
f=l->C;
g=l->E;
g=g*h;
if(c[g]==0)
{
c[g]=g;
d[g]=e*f;
}
else d[g]=d[g]+e*f;
l=l->next;
}
k=k->next;
}
int z=0;
for(int i=0;i
if (c[i]!=100)
{
if(z)cout
if(i==0)
{
cout
z=1;
}
else {
cout
z=1;
}
}
}
}
Node* sd(int n)
{
Node* p;
Node* q=p->next;
double a;
int b;
for(int i=0;i
{
cout
cin>>a;
cout<<"请输入第"<
cin>>b;
q->E=b;
q->C=a;
q=q->next;
}
q=NULL;
return p;
}

int main()
{
int n;
cout<<"请输入第一个多项式的项数 :"<
cin>>n;
Node* a=sd(n);
cout<<"请输入第二个多项式的项数 :"<
cin>>n;
Node* b=sd(n);
cout<<"这两个多项式的乘积为:"<<endl;
kingofjdashen(a,b);
}

解决方案

Node* p;
Node* q=p->next;

没有对p初始化,分配内存

解决方案二:

分配空间的问题 要初始化

解决方案三:

node *next
不是用指针吗?

解决方案四:

next是指针域,前面应该加*,node*next。

解决方案五:

Node *next

时间: 2024-12-22 21:16:25

c++-编译通过了,但是却运行出错是为啥....C++新手通宵第一晚求助的相关文章

linux 并行-Linux下MPI+OpenMP程序编译运行出错

问题描述 Linux下MPI+OpenMP程序编译运行出错 如题,错误提示如下: [node65:03787] *** Process received signal *** [node65:03787] Signal: Segmentation fault (11) [node65:03787] Signal code: Address not mapped (1) [node65:03787] Failing at address: 0x44000098 [node65:03787] [ 0

c-C代码中句子存放不同两个位置,编译都没错,一个运行正确,一个运行出错

问题描述 C代码中句子存放不同两个位置,编译都没错,一个运行正确,一个运行出错 #include //加法运算 int sum(int a, int b) { return a+b ; } //减法运算 int minus(int a, int b) { return a-b ; } void counting(int (*p)(int, int),int a, int b) { if(a <0 || b < 0) { printf("运算的数值<0n"); retu

编码-赫夫曼树出错 ,编译没错 不知道哪里错了运行不了

问题描述 赫夫曼树出错 ,编译没错 不知道哪里错了运行不了 编译没有错误,运行失败 #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> #define STACK_INIT_SIZE 100//存储空间初始分配量 没分号";" #define STACKINCREMENT 10 //存储空间分配增量 #define TRUE 1 #def

mfc-调用directsound实现音频播放,编译通过,运行出错?

问题描述 调用directsound实现音频播放,编译通过,运行出错? 以下是我自己尝试写的调用direct sound实现播放音频文件代码,编译是通过了,但执行后出现错误~不知道是什么原因~请高手指点~万分感谢 void CAudioPlayerDlg::OnButtonPlay() { // TODO: Add your control notification handler code here LPDIRECTSOUND lpds = NULL; InitDSound(m_hWnd, l

c++基础-编译成功,运行出错,怎么回事? 帮帮忙呀

问题描述 编译成功,运行出错,怎么回事? 帮帮忙呀 我是初学者,编了好久,希望有人看看 ,帮帮忙咯! #include #include #include using namespace std; typedef struct { string time; //缺课日期 string order; //缺课节数 string status[3]; //缺课课程,姓名,缺课类型 }situation; //顺序表的定义 #define MAXSIZE 1000 typedef struct { s

关于 string iterators imcompatiable问题 能编译 运行出错 求大大指点

问题描述 关于 string iterators imcompatiable问题 能编译 运行出错 求大大指点 #include #include #include #include #include using namespace std; struct com{ bool operator()(const string &s1, const string &s2){ int c1 = count(s1.begin(), s2.end(), '1'); int c2 = count(s2

数据结构,编译运行出错。小妹感激不尽呐1!!!

问题描述 数据结构,编译运行出错.小妹感激不尽呐1!!! #include #include #define list_init_size 100 #define listincrement 10 typedef struct{ Elemtype elem; int length; int listsize; }seqlist; status initlist(seqlist &a,seqlist &b) a.elem=(elemType)malloc(list_init_size*siz

c++-这程序编译无报错,运行时出错

问题描述 这程序编译无报错,运行时出错 #include<iostream> int Two(int a, const int* c) { if(a >= *c) return a; else return *c; } int main() { std::cout << "请输入两个数:" ; int a, b, *c; std::cin >> a >> b; *c = b; std::cout << "二者中

一个数组小练习编译通过,运行出错!

问题描述 一个数组小练习编译通过,运行出错!在myeclipse上没有显示错误信息代码如下,请协助!packagepart1;publicclassTestArray{publicstaticvoidmain(String[]args){if(args.length<3){System.out.println("errorlength,pls.re-enter!");System.exit(-1);}doubled1=Double.parseDouble(args[0]);dou