| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 772 人关注过本帖
标题:这是哪里出错了?
只看楼主 加入收藏
hg654321free
Rank: 1
等 级:新手上路
帖 子:15
专家分:5
注 册:2013-4-20
收藏
 问题点数:0 回复次数:4 
这是哪里出错了?
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ERROR 5
#define OK 5
//typedef int ElemType;
#define ElemType int


typedef struct Node
{
    ElemType data;    //&Ecirc;&yacute;&frac34;&Yacute;&Oacute;ò
    struct Node *next;  //&Ouml;&cedil;&Otilde;&euml;&Oacute;ò
}Node ,*LinkList;


int CreateListHead(LinkList *L, int n)
{
    LinkList p,r;
    int i=1;

    srand(time(0));       //初始化随机种子

    (*L) = (LinkList)malloc(sizeof(struct Node));        //先建立一个带头结点的单链表

    if((*L) == NULL)

    {

        fprintf(stderr, "malloc() error.\n");

        return ERROR;

    }

    (*L)->next = NULL;




    r=*L;      //尾部结点

    for(i=0; i<n; i++)
    {
        p=(Node *) malloc(sizeof(Node));
        p->data=rand()%100+1;
        r->next =p;
        r=p;
    }

    r->next = NULL;                                        //表示当前链表结束



    return OK;




}

int ClearList(LinkList *L)
{
    LinkList p,q;

    p=(*L)->next;

    while(p)
    {
        q=p->next;
        free(p);
        p=q;
    }

    (*L)->next=NULL;

    return OK;
}

int printList(LinkList L)

{

    LinkList p;

    p = L->next;

    if(p == NULL)

    {

        printf("链表为空.\n");

        return ERROR;

    }

    while(p)

    {

        printf("%d ", p->data);

        p = p->next;

    }

    printf("\n");



    return OK;

}


int main()
{
    LinkList L;
    printf("Hello world!\n");

    CreateListHead(&L,6);
    printList(L);
    return 0;
}
菜鸟一只,怎么return OK 或者return ERROR改成下面都可以正确返回呀?
2013-04-24 20:47
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
你写的什么东西啊,链表的基本算法怎么被你写成这样了?
为什么OK是5 error也是5 ?
#define ElemType int    这又是什么东东?
应该是 typedef int ElemType 吧?   后面想必你是抄书的吧,我就没看了

三十年河东,三十年河西,莫欺少年穷!
2013-04-24 21:04
小王子的花
Rank: 1
等 级:新手上路
帖 子:24
专家分:9
注 册:2013-4-24
收藏
得分:0 
#include <iostream>
#define OK 1
#define ERROR 0
using namespace std;
typedef int ElemType;
typedef struct LNode//链表节点类型
{
    int data;
    struct LNode *next;
}LNode,*LinkList;//链表节点指针类型




int CreateList_L(LinkList &L,int n)//创建一个长度为n的线性表L
    {
        int i;
        LNode *p;
        L=(LinkList )malloc(sizeof(LNode));
        L->next=NULL;
        if(! L) exit(0);
        for(i=0;i<n;i++)
        {
            p=(LinkList)malloc(sizeof(LNode));
            
            cin>>p->data;
            p->next=L->next;
             L->next=p;
        }
        return OK;
    }







int GetElem_L(LinkList L,int i,ElemType &e)
{
        LNode *p;
        int j=1;
        p=L->next;
        while(p&&j<i)
        {
            p=p->next;++j;
        }
        if(!p||j>i)return ERROR;
        e=p->data;
        return e;
        }








int  ListInsert_L(LinkList &L,int i,ElemType e)
{
            LNode *p,*s ;
            int j=0;
//                int s;
            //    LinkList p;
            p=L;
            while(p&&j<i-1)
            {
                p=p->next;++j;
            }
            if(!p||j>i-1) return ERROR;
            s=(LinkList)malloc(sizeof( LNode));
            s->data=e;s->next=p->next;
            p->next=s;
            

        return OK;
    }









int ListDelete_L(LinkList &L,int i,ElemType &e)
    {
        LNode *p ,*q;
        int j=0;
        p=L;
    //    int q;
        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;
        e=q->data; free(q);
    //    return ERROR;
return OK;
    }







int ShowList_L(LinkList &L)
    {
        LinkList p;
        p=L->next;
        while(p)
        {
            cout<<p->data<<"  "<<endl;
            p=p->next;
        }
            
    //    cout<<endl;
        return 0;
    }






int main()
{
  int i,n;
  LNode *p;
  LinkList L;
  cout<<"请输入元素个数:"<<endl;
  cin>>n;
  CreateList_L(L,n);
 ShowList_L(L);
  
 

 for(;;)
  {
      cout<<"请输入操作选择:0,定位;1,插入;2,删除;\n 请输入你的选择:"<<endl;
      cin>>i;
      while(i<0||i>3)
      {
         cout<<"输入错误,请重新输入。"<<endl;
      }
      switch(i)
      {
      case 0:
          {
              int i,e;
              cout<<"输入你想定位的数的位置:"<<endl;
              cin>>i;
              
             GetElem_L( L, i,e);
             cout<<e<<endl;
            
             break;
          }
      case 1:
          {
           int  i,e;
           cout<<"输入插入的位置:"<<endl;
           cin>>i;
          cout<<"输入插入的数:"<<endl;
           cin>>e;
           ListInsert_L(L, i, e);
           ShowList_L(L);
           break;
          }
      case 2:
          {
            int i,e;
            cout<<"输入删除的数的位置:"<<endl;
            cin>>i;
             ListDelete_L(L, i, e) ;
             ShowList_L(L);
             break;
          }
     
      }
  }
return 0;
}









我也是刚学不久 但是感觉你写的太乱了,不好改,你看看这个,不好见谅
2013-04-26 14:49
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:0 
回复 楼主 hg654321free
不知道 lz改成什么...然后结果又是什么....在宏定义的时候error为5 ok也为5...为不好的定义
要是可以话..将lz所说的错误贴上来看看....
2013-04-26 15:03
成欢欢
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-4-16
收藏
得分:0 
回复 3楼 小王子的花
这里使用C++语言么,好多语法都不认识
2013-05-04 20:39
快速回复:这是哪里出错了?
数据加载中...
 
   



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

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