运行出结果后为何显示停止工作。。哪里的问题
解决时间 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;
}
全部回答
明显的下标越界问题
,以下是我修改后的程序!编译,运行通过了!你看看!
#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检验!
我要举报
大家都在看
推荐资讯