| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 824 人关注过本帖
标题:为什么打印出来的是-89787876?
只看楼主 加入收藏
lqllin
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2017-1-18
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:3 
为什么打印出来的是-89787876?
#include<stdio.h>
#include<stdlib.h>
#define max
#define ERROR 0
#define OK 1
typedef int ElemType;
typedef int Status;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
Status InitList(LinkList &L){
L=new LNode;
L->next=NULL;
return OK;
}
Status ListInsert(LinkList &L,int i,ElemType e){
int j=0;
LinkList p=L,s;
if(!p||j>i-1)return ERROR;
while(p&&j<i-1){
p=p->next;
j++;
}
s=(LinkList)malloc(sizeof(struct LNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
void output(LinkList L){
LinkList p=L->next;
while(p){
printf("%d\n",p->data);
p=p->next;
}
}
Status ListDelete(LinkList &L,int i){
LinkList p=L,q;
int j=0;
while((p->next)&&(j<i-1)){
p=p->next;
++j;
}
if(!(p->next)||(j>i-1))return ERROR;
q=p->next;
p->next=q->next;
delete q;
return OK;
}
LNode *LocateElem(LinkList L,ElemType e){
LinkList p=L;
p=L->next;
if(p&&p->data!=e){
p=p->next;
return p;}
else printf("error");
}

Status GetElem(LinkList L,int i,ElemType e){
LinkList p=L;
int j=1;
while(p&&j<i){
p=p->next;
++j;
}
if(!p||j>i)return ERROR;
e=p->data;
return OK;
}
void Find(LinkList L,int x)//查找值为x的直接前驱结点q
{
 LinkList p;
 p=L;
 while( p->next &&p->next->data!=x)
  p=p->next;
 if(p->next)
  printf("%d的位置为:第%d位\n\n",x,p->data+1);
 else
  printf("没找到!!\n\n");
}

Status GetElem_L(LinkList L,int i,ElemType e) {  
    LinkList p;
    p=L->next;
    //初始化,p指向第一个结点  
    int j=1;
    //j为计数器
    while(p&&j<i)
        //顺链域向后扫描,直到p指向第i个元素或p为空
    {   p=p->next;   ++j;  }
    if(!p||j>i)
        //第i个元素不存在  
        return ERROR;
    e=p->data;
    //取第i个元素  
    return OK; }

main(){
int i;
long int e;

LinkList L;
InitList(L);
for(i=1;i<10;i++)
ListInsert(L,i,i);
output(L);
printf("\n");
ListDelete(L,4);
ListInsert(L,4,90);
ListInsert(L,9,100);
output(L);
printf("\n");
Find(L,90);
Find(L,100);
GetElem_L(L,3,e);
printf("%d\n",e);

}
搜索更多相关主题的帖子: include return 
2017-03-10 23:45
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
这表明你打印的区域是
未初始化区域、未赋值区域、超数组范围区域

DO IT YOURSELF !
2017-03-11 08:38
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:7 
发现你有一个问题,看下面的示例程序,引用的用法:
#include <stdio.h>

void change(int &a)
{
    a=8;
}

main()
{
    int a=0;
    change(a);
    printf("%d",a);
}
2017-03-11 15:08
lqllin
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2017-1-18
收藏
得分:0 
回复 3楼 ehszt
请问是哪里
2017-03-12 20:39
快速回复:为什么打印出来的是-89787876?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016192 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved