永发信息网

运行出结果后为何显示停止工作。。哪里的问题

答案:2  悬赏:20  手机版
解决时间 2021-01-31 03:39
  • 提问者网友:謫仙
  • 2021-01-30 05:59
#include"iostream"
#define Data int
using namespace std;
typedef struct LinkNode
{
Data data;
LinkNode *next;
}*LNode;
void InitLinkList(LNode &L)
{
LinkNode *p=new LinkNode;
L=p;
L->next=NULL;
}
void CreatList(LNode &L,Data data[],int num)
{
for(int i=0;i {
LinkNode *p=new LinkNode;
p->data=data[i];
p->next=L;
L=p;
}
}
void print(LNode L)
{
while(L)
{
cout<data;
L=L->next;
}
}
int main()
{
LNode L;
Data data[]={1,2,3,4,5,6};
CreatList(L,data,sizeof(data)/sizeof(data[0]));
print( L);
return 0;
}
最佳答案
  • 五星知识达人网友:野味小生
  • 2021-01-30 06:59
int main()
{
LNode L=NULL; //不初始化,导致链表没有尾,输出时死掉了!!
Data data[]={1,2,3,4,5,6};
CreatList(L,data,sizeof(data)/sizeof(data[0]));
print( L);
return 0;
}
全部回答
  • 1楼网友:大漠
  • 2021-01-30 07:30
明显的下标越界问题 ,以下是我修改后的程序!编译,运行通过了!你看看! #include int main() { int a[11]={1,3,5,7,9,11,13,15,17,19};//用10个元素初值化 int i,j,x; printf("原数组:\n"); for (i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); printf("输入一个要插入的数:"); scanf("%d",&x); printf("\n"); for (i=0;i<10;i++) { if (x<=a[i])//因为原来数组已经有序,故只需从左道右遍历一次即可! { for (j=9;j>=i;j--)//找到位置,后移元素(注意a[10]是为0) a[j+1]=a[j]; break; } } a[i]=x;//在i位置插入元素 printf("现数组:\n"); for (i=0;i<11;i++) printf("%d ",a[i]); return 1; } 可以输入20和0检验!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯