| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 686 人关注过本帖
标题:代码应该如何写?
只看楼主 加入收藏
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
结帖率:38.67%
收藏
 问题点数:0 回复次数:9 
代码应该如何写?
#include "stdafx.h"
#include "stdio.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define OK 1
#define Error 0
#define OVERFLOW -1
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
typedef int Status;
typedef struct
{
    ElemType *elem;
    int length;
    int listsize;
}SqList;
Status InitList_Sq(SqList &L)
{
          int i;
          L.elem = (ElemType * )malloc(LIST_INIT_SIZE*sizeof(ElemType));
          if (! L.elem) exit (OVERFLOW);
         
          for(i=1;i<=5;i++)
          {
             scanf("%d",&L.elem[i-1]);
          }
          L.length = 5;
          L.listsize = LIST_INIT_SIZE;
          return OK;
}

Status PrintList_Sq(SqList L)     
{
          int i;
          ElemType newbase;
          printf("Linklist yuansu is:\n ");
          for (i=1;i<=L.length;i++)
          {
               printf("%4d",L.elem[i-1]);
          }
            printf("\n");
          return OK;
}

Status ListInsert_Sq(SqList &L,int i,ElemType e)//插入函数应该如何编写代码?
{
        return OK;
        
}
Status ListDelete_Sq(SqList &L, int i ,ElemType &e)
{
       ElemType *p,*q;
       if ((i<1) || (i>L.length))
        return Error;
       p = & (L.elem[i-1]);  
       e = *p;
       q= L.elem + L.length-1;
       for (++p;p<=q;++p)
           *(p-1)= *p;
       --L.length;
       return OK;
}


int main(int argc, char* argv[])
{
   
    SqList L;
    ElemType e;
    int select,i;

    InitList_Sq(L);
    PrintList_Sq(L);
    ListDelete_Sq(L,i,e);
    printf("input i:\n");
    scanf("%d",&i);
    if (ListDelete_Sq(L,i,e)==Error)
        printf("i is error!\n");
    else

        PrintList_Sq(L);
    return 0;
}
 
搜索更多相关主题的帖子: 代码 
2009-09-24 14:00
atom_09
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:92
专家分:141
注 册:2009-8-24
收藏
得分:0 
你不是写了代码了 什么叫代码怎么写
莫民奇妙
2009-09-24 14:33
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
收藏
得分:0 
是要在插入函数里里面实现插入功能的代码
2009-09-24 15:13
chenaiyuxue
Rank: 5Rank: 5
来 自:山东滨州
等 级:职业侠客
帖 子:334
专家分:370
注 册:2008-5-20
收藏
得分:0 
改了一下,自己仔细对照着看一下吧
#include "stdafx.h"
#include "stdio.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define OK 1
#define Error 0
#define OVERFLOW -1
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
typedef int Status;
typedef struct
{
    ElemType *elem;
    int length;
    int listsize;
}*SqList;
Status InitList_Sq(SqList L)  
{
          int i;
          L->elem = (ElemType * )malloc(LIST_INIT_SIZE*sizeof(ElemType));  
          if (! L->elem) exit (OVERFLOW);
           
          for(i=1;i<=5;i++)
          {
             scanf("%d",&L->elem[i-1]);
          }
          L->length = 5;
          L->listsize = LIST_INIT_SIZE;
          return OK;
}
 
Status PrintList_Sq(SqList L)      
{
          int i;
          //ElemType newbase;
          printf("Linklist yuansu is:\n ");
          for (i=1;i<=L->length;i++)
          {
               printf("%4d",L->elem[i-1]);
          }
            printf("\n");
          return OK;
}  
 
Status ListInsert_Sq(SqList &L,int i,ElemType e)
{
        ElemType* newbase;
        ElemType* p;
        ElemType* q;
 
        if (i < 1 || i > L->length + 1)
        {
            return Error;
        }
        if (L->length >= L->listsize)
        {
            newbase = (ElemType *) realloc(L->elem, (L->listsize + LISTINCREMENT) * sizeof(ElemType));
            if (!newbase)
            {
                exit(OVERFLOW);
            }
            L->elem = newbase;
            L->listsize += LISTINCREMENT;
        }
        q = &(L->elem[i - 1]);
        for (p = &(L->elem[L->length - 1]); p >= q; --p)
        {
            *(p + 1) = *p;
        }
        *q = e;
        ++ L->length;

        return OK;
         
}
Status ListDelete_Sq(SqList L, int i ,ElemType *e)
{
       ElemType *p,*q;
       if ((i<1) || (i>L->length))  
        return Error;
       p = & (L->elem[i-1]);   
       *e = *p;  
       q= L->elem + L->length-1;  
       for (++p;p<=q;++p)
           *(p-1)= *p;
       --L->length;  
       return OK;
}
 
 
int main(int argc, char* argv[])
{
     
    SqList L;
    ElemType e;
    int i;
 
    InitList_Sq(L);
    PrintList_Sq(L);
    //ListDelete_Sq(L,i,e);
    printf("input i:\n");
    scanf("%d",&i);
    if (ListDelete_Sq(L,i,&e)==Error)  
        printf("i is error!\n");  
    else
 
        PrintList_Sq(L);
    ListInsert_Sq(L, i, e); //这两句的作用是将上面删除的元素重新插入原来的位置
    PrintList_Sq(L);

    return 0;
}

你是雪,我是尘埃,相遇是意外;你坠落,在我胸怀,流进我血脉。
2009-09-24 15:42
chenaiyuxue
Rank: 5Rank: 5
来 自:山东滨州
等 级:职业侠客
帖 子:334
专家分:370
注 册:2008-5-20
收藏
得分:0 
还有个小错误:把Status ListInsert_Sq(SqList &L,int i,ElemType e) 改成Status ListInsert_Sq(SqList L,int i,ElemType e)



你是雪,我是尘埃,相遇是意外;你坠落,在我胸怀,流进我血脉。
2009-09-24 15:44
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
收藏
得分:0 
还是不能执行
#include "stdafx.h"
#include "stdio.h"  
#include "string.h"  
#include "stdlib.h"  
#define OK 1  
#define Error 0  
#define OVERFLOW -1  
#define LIST_INIT_SIZE 100  
#define LISTINCREMENT 10  
typedef int ElemType;  
typedef int Status;  
typedef struct  
{  
    ElemType *elem;  
    int length;  
    int listsize;  
}*SqList;  
 
Status InitList_Sq(SqList L)   
{  
          int i;  
          L->elem = (ElemType * )malloc(LIST_INIT_SIZE*sizeof(ElemType));   
          if (! L->elem) exit (OVERFLOW);  
            
          for(i=1;i<=5;i++)  
          {  
             scanf("%d",&L->elem[i-1]);  
          }  
          L->length = 5;  
          L->listsize = LIST_INIT_SIZE;  
          return OK;  
}  
 
Status PrintList_Sq(SqList L)      
{  
          int i;  
          //ElemType newbase;  
          printf("Linklist yuansu is:\n ");  
          for (i=1;i<=L->length;i++)  
          {  
               printf("%4d",L->elem[i-1]);  
          }  
            printf("\n");  
          return OK;  
}   
 
Status ListInsert_Sq(SqList L,int i,ElemType e)//这段代码还是不能执行
{  
        ElemType* newbase;  
        ElemType* p;  
        ElemType* q;  
 
        if (i < 1 || i > L->length + 1)  
        {  
            return Error;  
        }  
        if (L->length >= L->listsize)  
        {  
            newbase = (ElemType *) realloc(L->elem, (L->listsize + LISTINCREMENT) * sizeof(ElemType));  
            if (!newbase)  
            {  
                exit(OVERFLOW);  
            }  
            L->elem = newbase;  
            L->listsize += LISTINCREMENT;  
        }  
        q = &(L->elem[i - 1]);  
        for (p = &(L->elem[L->length - 1]); p >= q; --p)  
        {  
            *(p + 1) = *p;  
        }  
        *q = e;  
        ++ L->length;
 
        return OK;  
         
}  
Status ListDelete_Sq(SqList L, int i ,ElemType *e)  
{  
       ElemType *p,*q;  
       if ((i<1) || (i>L->length))   
        return Error;  
       p = & (L->elem[i-1]);   
       *e = *p;   
       q= L->elem + L->length-1;   
       for (++p;p<=q;++p)  
           *(p-1)= *p;  
       --L->length;   
       return OK;  
}  
 
 
 
int main(int argc, char* argv[])
{
      
    SqList L;  
    ElemType e;  
    int i;  
 
    InitList_Sq(L);  
    PrintList_Sq(L);  
    ListInsert_Sq(L, i, e);  
    PrintList_Sq(L);
 
    ListDelete_Sq(L,i,e);  
    printf("input i:\n");  
    scanf("%d",&i);  
    if (ListDelete_Sq(L,i,&e)==Error)   
        printf("i is error!\n");   
    else  
 
        PrintList_Sq(L);  
     
    return 0;
}
2009-09-24 17:42
chenaiyuxue
Rank: 5Rank: 5
来 自:山东滨州
等 级:职业侠客
帖 子:334
专家分:370
注 册:2008-5-20
收藏
得分:0 
请把出现的错误贴上来,方便别人找错误

你是雪,我是尘埃,相遇是意外;你坠落,在我胸怀,流进我血脉。
2009-09-24 20:25
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
收藏
得分:0 
错误的提示:
D:\Program Files\Microsoft Visual Studio\MyProjects\2009_9_24\2009_9_24.cpp(36) : error C2371: 'SqList' : redefinition; different basic types
        D:\Program Files\Microsoft Visual Studio\MyProjects\2009_9_24\2009_9_24.cpp(20) : see declaration of 'SqList'
2009-09-24 22:45
shuijiashui8
Rank: 2
等 级:论坛游民
帖 子:21
专家分:44
注 册:2009-9-15
收藏
得分:0 
我不是给你了一个了吗
2009-09-24 23:26
shuijiashui8
Rank: 2
等 级:论坛游民
帖 子:21
专家分:44
注 册:2009-9-15
收藏
得分:0 
上次没有认真看 就给你了一个 这次就帮你看看 不看不知道 一看吓了一跳
拿一个指针即当指针用 又当数组用, 你牛!!!!!!!!!!!1
建议结构体定义
#define listsize 100;
#define size 5;
typedef struct
{
  int data[size];
  int *next;
}*linklist;

L->elem = (ElemType * )malloc(LIST_INIT_SIZE*sizeof(ElemType));   可能是才疏学浅 没有见过这样的
于是就调试了一下
就只是调用前两个函数 没有错误时不假 但是不能运行。
建议用我的结构体重新弄吧
这种真的不行
如果不行 在留言吧 我帮你弄个






2009-09-24 23:53
快速回复:代码应该如何写?
数据加载中...
 
   



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

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