| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 757 人关注过本帖
标题:求指导,帮我看看下面三个实验错在哪
只看楼主 加入收藏
chenwei926fl
Rank: 1
来 自:宜昌
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-4-4
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:9 
求指导,帮我看看下面三个实验错在哪
一:
#include<stdio.h>
#include<malloc.h>  
#define  OK  1
#define  ERROR  0
#define  OVERFLOW  -2
#define  TRUE  1
typedef  int  Status;
  //-------顺序表类型及其基本操作函数的定义---------
#define InitSize 100
#define I  20
typedef int ElemType;  
typedef struct
{  ElemType *Elem;
int Length;
int ListSize;
}SqList;  //SqList类型为顺序表类型
//初始化操作
Status InitList(SqList &L)  `
{
    L.Elem=(ElemType *)malloc(InitSize*sizeof(ElemType));
    if (!(L.Elem)) return(OVERFLOW);
    L.Length=0; L.ListSize=InitSize;
    return OK;
}
//插入操作
Status ListInsert(SqList &L, int i, ElemType x)
{        
        int j;
       if (i<1||i>L.Length+1)  printf("位置非法");  return ERROR;
       if (L.Length>=L.ListSize)
 {  L.Elem=( ElemType *)malloc((L.ListSize+I)*sizeof(ElemType));
if(!(L.Elem)) return(OVERFLOW);
L.ListSize+=I;
}
       for(j=L.Length-1;j>=i-1;j--)
             L.Elem[j+1]=L.Elem[j];
       L.Elem[i-1]=x;
       L.Length++;
       return OK;
    }
//删除操作
Status ListDelist(SqList &L,int i,ElemType *e)
{   int k;
   if (i<1||i>L.Length+1) { printf("位置非法");  return ERROR;}   
    *e=L.Elem[i-1];
    for(k=i;k<=L.Length;k++)
        L.Elem[k-1]=L.Elem[k];
    L.Length--;
    return OK;
}
//取元素操作
int   ListGet(SqList &L,ElemType e)
{
    int i=0;
    while((i<=L.Length-1)&&(L.Elem[i]!=e))
        i++;
    if(i<=L.Length-1)  return(L.Elem[i]);
    else    return ERROR;
}
//顺序表输出操作
void ListOutput(SqList L)  
{ int i;
  for(i=0;i<=L.Length-1;i++)
     printf("%6d",L.Elem[i]);
  printf("\n");
}
//-------------主函数定义--------------------
void main()
{  SqList L;
   int i;
   InitList(L);
   for (i=0;i<6;i++)  
       ListInsert(L,i+1,2*i);
    ListOutput(L);
   ListInsert(L,1,66);   ListOutput(L);
   ListDelist(L,2,&47);         ListGet(L,4);
   ListInsert(L,3,77);   ListOutput(L);
   ListInsert(L,L.Length+1,888);   ListOutput(L);
}








二:
#include <stdio.h>
#include <malloc.h>
#define  OK  1
#define  ERROR  0
#define  OVERFLOW  -2
#define  TRUE  1
#define  FALSE  0
typedef  int  Status;
  //------------单链表类型及其基本操作函数的定义------
typedef int ElemType;  
typedef struct Node
{  ElemType data;
   struct Node *next;
 }*LinkList;  
Status InitList(LinkList &L)  
{  L=(LinkList)malloc(sizeof(struct Node));
   if(!L) return(OVERFLOW);
   L->next=NULL;
   return OK;
 }
//插入操作
Status ListInsert(LinkList &L,int i, ElemType e)
{  LinkList p,s;
   int j;
 p=L;j=0;
 while(p&&jnext;j++;}
 if (!p||j>i-1) return ERROR;
 s=(LinkList)malloc(sizeof(struct Node));
 s->data=e;
 s->next=p->next;
 p->next=s;
 return OK;
 }
 //删除操作
Status DelList(LinkList L,int i,ElemType *e)
{
    Node *p,*r;
    int k;
    p=L;k=0;
    while(p->next!=NULL&&k<i-1)
    {
        p=p->next;
        k=k+1;
    }
    if(k!=i-1)
    { printf("删除结点非法");  return ERROR; }
    r=p->next;
    p->next=p->next->next;
    *e=r->data;
    free(r);
    return TRUE;
}
//取元素操作
int *GetList(LinkList L;ElemType e)
{
    int j;
    Node *p;
    p=L;j=0;
    while(p->next!=NULL&&e!=H->elem[j])
    {
        p=p->next;
        j++;
    }
    if(p->next=NULL)  return ERROR;
    else  return(*p)
}
 //输出操作
 void ListOutput(LinkList L)
 {  LinkList p;
    p=L->next;
    while(p)
    {  printf("%6d",p->data); p=p->next; }
    printf("\n");
 }
//-------------主函数定义------------------
void main()
{  int i;
  LinkList La;
   InitList_l(La);
       for (i=0;i<5;i++)  ListInsert(La,i+1,3*i);
    ListOutput(La); DelList(L,5,78);
    GetList(L;99);
       ListInsert(La,1,999);  ListOutput(La);
       ListInsert(La,4,888);  ListOutput(La);
}





三:
#include<stdio.h>
#include<malloc.h>
  typedef struct PNode
  {  int C;
     int E;
     struct PNode *next;
  }*POLY;  
  void CreatPoly(POLY &L,int n)
  {  int i,C,E;
     POLY p,s;
     L=(POLY)malloc(sizeof(struct PNode));
     L->next=NULL;
     p=L;
     for(i=1;i<=n;i++)
     {  printf("input %dth C:",i);
        scanf("%d",&C);
        printf("input %dth E:",i);
        scanf("%d",&E);
        s=(POLY)malloc(sizeof(struct PNode));
        s->C=C;s->E=E;
        s->next=NULL;p->next=s;p=s;
     }
   }
   void OutputPoly(POLY  L)
   {  int flag=1;  
      POLY p;
      p=L->next;
      while(p)
      {  if(flag) { printf("%dX^%d",p->C,p->E); flag=0; }
         else  printf("%+dX^%d",p->C,p->E);
         p=p->next;
      }
          printf("\n");
        }
   void AddPoly(POLY La, POLY Lb, POLY &Lc)
   { int x;
     POLY pa,pb,pc,s;
     Lc=(POLY)malloc(sizeof(struct PNode));
     Lc->next=NULL;pc=Lc;
     pa=La->next;pb=Lb->next;
     while(pa&&pb)
     {   if(pa->E->E)
         {  s=(POLY)malloc(sizeof(struct PNode));
             s->C=pa->C;s->E=pa->E;
             s->next=NULL;pc->next=s;pc=s;
             pa=pa->next;
         }
         else if(pa->E>pb->E)
         {    s=(POLY)malloc(sizeof(struct PNode));
              s->C=pb->C;s->E=pb->E;
              s->next=NULL;pc->next=s;pc=s;
              pb=pb->next;
         }
         else
{    x=pa->C+pb->C;
              if(x!=0)
              {  s=(POLY)malloc(sizeof(struct PNode));
                 s->C=x;s->E=pa->E;
                 s->next=NULL;pc->next=s;pc=s;
              }
              pa=pa->next; pb=pb->next;
         }
      }
      while(pa)
      {   s=(POLY)malloc(sizeof(struct PNode));
          s->C=pa->C;s->E=pa->E;
          s->next=NULL;pc->next=s;pc=s;
          pa=pa->next;
      }
      while(pb)
      {   s=(POLY)malloc(sizeof(struct PNode));
          s->C=pb->C;s->E=pb->E;
          s->next=NULL;pc->next=s;pc=s;
          pb=pb->next;
      }
  }
    void main()
    {  POLY La,Lb,Lc;
       int n;
       printf("Creat Poly La:\n");
       printf("\t Input the number of items of La:");
       scanf("%d",&n);
       CreatPoly(La,n);
       printf("\nLa(x)=");
       OutputPoly(La);
       printf("Creat Poly Lb:\n");
       printf("\tInput the number of items of Lb:");
       scanf("%d",&n);
       CreatPoly(Lb,n);
       printf("\nLb(x)=");
       OutputPoly(Lb);
       AddPoly(La,Lb, Lc);
       printf("Lc(x)=La(x)+Lb(x)=");
       OutputPoly(Lc);
   }








搜索更多相关主题的帖子: 看看 include return 
2013-04-11 22:03
好聚好散
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:138
专家分:123
注 册:2012-12-4
收藏
得分:10 
一;
#include<stdio.h>
 #include<malloc.h>  
 #define  OK  1
 #define  ERROR  0
 #define  OVERFLOW  -2
 #define  TRUE  1
 typedef  int  Status;
   //-------顺序表类型及其基本操作函数的定义---------
#define InitSize 100
 #define I  20
 typedef int ElemType;  
 typedef struct
 {  ElemType *Elem;
 int Length;
 int ListSize;
 } SqList;  //SqList类型为顺序表类型
//初始化操作
int InitList(SqList L)
 {
     L.Elem=(ElemType *)malloc(InitSize*sizeof(ElemType));
     if (!(L.Elem)) return(OVERFLOW);
     L.Length=0; L.ListSize=InitSize;
     return 0;
 }
 //插入操作
Status ListInsert(SqList L, int i, ElemType x)
 {        
         int j;
        if (i<1||i>L.Length+1)  printf("位置非法;;;;;;;;");  return ERROR;
        if (L.Length>=L.ListSize)
 {  L.Elem=( ElemType *)malloc((L.ListSize+I)*sizeof(ElemType));
 if(!(L.Elem)) return(OVERFLOW);
 L.ListSize+=I;
 }
        for(j=L.Length-1;j>=i-1;j--)
              L.Elem[j+1]=L.Elem[j];
        L.Elem[i-1]=x;
        L.Length++;
        return 0;
     }
 //删除操作
Status ListDelist(SqList L,int i,ElemType *e)
 {   int k;
    if (i<1||i>L.Length+1) { printf("位置非法");  return ERROR;}   
     *e=L.Elem[i-1];
     for(k=i;k<=L.Length;k++)
         L.Elem[k-1]=L.Elem[k];
     L.Length--;
     return OK;
 }
 //取元素操作
int   ListGet(SqList L,ElemType e)
 {
     int i=0;
     while((i<=L.Length-1)&&(L.Elem[i]!=e))
         i++;
     if(i<=L.Length-1)  return(L.Elem[i]);
     else    return ERROR;
 }
 //顺序表输出操作
void ListOutput(SqList L)  
 { int i;
   for(i=0;i<=L.Length-1;i++)
      printf("%6d",L.Elem[i]);
   printf("\n");
 }
 //-------------主函数定义--------------------
void main()
 {  SqList L;
    int i;
    InitList(L);
    for (i=0;i<6;i++)  
        ListInsert(L,i+1,2*i);
     ListOutput(L);
    ListInsert(L,1,66);   ListOutput(L);
    ListDelist(L,2,47);         ListGet(L,4);
    ListInsert(L,3,77);   ListOutput(L);
    ListInsert(L,L.Length+1,888);   ListOutput(L);
 }

还是有错你自己看看;;

无节操,无真相
2013-04-11 22:16
chenwei926fl
Rank: 1
来 自:宜昌
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-4-4
收藏
得分:0 
好吧,我错啦,把对的也发上来啦
关键在后面两个
求大神指点

千百度
2013-04-11 22:29
chenwei926fl
Rank: 1
来 自:宜昌
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-4-4
收藏
得分:0 
回复 2楼 好聚好散
真有错
--------------------Configuration: 3 - Win32 Debug--------------------
Compiling...
Error spawning cl.exe

1.obj - 1 error(s), 0 warning(s)

千百度
2013-04-12 21:10
好聚好散
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:138
专家分:123
注 册:2012-12-4
收藏
得分:0 
这位妹子,,俺能力有限了

无节操,无真相
2013-04-13 22:40
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:10 
#include <stdio.h>
#include <malloc.h>
#define  OK  1
#define  ERROR  0
#define  OVERFLOW  -2
#define  TRUE  1
#define  FALSE  0
typedef  int  Status;
  //------------单链表类型及其基本操作函数的定义------
typedef int ElemType;  
typedef struct Node
{  ElemType data;
   struct Node *next;
}*LinkList;
//初始化一个带头节点的空表
Status InitList(LinkList &L)  
{  L=(LinkList)malloc(sizeof(struct Node));
   if(!L) return(OVERFLOW);
   L->next=NULL;
   return OK;
}
//求单链表的长度
int Length(LinkList &L)
{    LinkList p;
    int k=0;
    p=L->next;
    while(p!=NULL)
    {k++;
    p=p->next;
    }
    return k;
}
//查找第i个节点的位置
LinkList  FindIndex( LinkList &L,int i)
{if(i==-1) return L;
    LinkList p=L->next;
    int j=0;
    while(p!=NULL&&j<i)
    {p=p->next;
    j++;
    }
    return p;
}
//建立单链表
void Create(LinkList &L,int n)
{    //cout<<"输入单链表的长度:"<<endl;
    //cin>>n;
    LinkList p,q;
        L->next=NULL;
        p=L;
        for(int i=1;i<=n;i++)
        {q=(LinkList)malloc(sizeof(struct Node));
        q->data=i;
        p->next=q;
        p=q;
            
        }
        p->next=NULL;

}
//插入操作
Status ListInsert(LinkList &L,int i, ElemType e)
{  LinkList p,q;
    p=FindIndex(L,i-1);
    q=(LinkList)malloc(sizeof(struct Node));
    if(p==NULL) return ERROR;
    else {q->next=p->next;
    q->data=e;
    p->next=q;
    }
return OK;
}
//删除操作
Status DelList(LinkList L,int i,ElemType e)
{
    Node *p;
    int k;
    p=L;k=0;
  p=FindIndex(L,i-1);
    if((p!=NULL)&&(p->next!=NULL))
    { LinkList q;
        q=p->next;
        p->next=q->next;
        e=q->data;
        delete (q);
    }
    else printf("删除位置错误。");
    return OK;
}
//取元素操作
int GetList(LinkList &L,ElemType e)
{
    int j;
    Node *p;
    p=L;j=0;
    while(p->next!=NULL&&e!=p->data)
    {
        p=p->next;
        //j++;
    }
    if(p==NULL)  return ERROR;
    else  return(p->data);
}
//输出操作
void ListOutput(LinkList L)
{  LinkList p;
    p=L->next;
    while(p)
    {  printf("%6d",p->data); p=p->next; }
    printf("\n");
}
//-------------主函数定义------------------
void main()
{
  LinkList La;
   InitList(La);
      // for (i=0;i<5;i++)
          // ListInsert(La,i+1,3*i);
   Create(La,10);
    ListOutput(La);
    DelList(La,5,78);//不应该是78吧,应该是一变量吧,你删除的是第5个位置,78那个变量应该是返回第5个位置的值吧
    GetList(La,99);
      ListInsert(La,1,999);
      ListOutput(La);
       ListInsert(La,4,888);
       ListOutput(La);
}//这是二个的错误好多,主要你的插入操作,我没看明白啊,想用插入操作建表是可以的。你分析清楚了写个算法思路我帮你改改。建链表你可以改输入的,你参考下,你的编程基础的多练练,分号别乱用好不,指针也是具体看取元素函数,第三个不知道写的啥也没个说明


同学习......同进步....你帮我......我帮你.....上善若水.....
2013-04-14 09:03
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:0 
  if(pa->E->E)//请改为if(pa->E)
//能告诉我不第三个是一元多项式相加还是?
//是相加的话,这贴给你参考
https://bbs.bccn.net/viewthread.php?tid=403310&page=1#pid2274573

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-04-14 09:13
chenwei926fl
Rank: 1
来 自:宜昌
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-4-4
收藏
得分:0 
回复 7楼 不玩虚的
实验题目三:一元多项式的表示与运算

要求:利用线性表(顺序表或链表)实现一元多项的类型定义及其相加等等运算,并进行验证给出结果。

您是高手,还能看出题目,以后多指导啊


千百度
2013-04-14 12:16
chenwei926fl
Rank: 1
来 自:宜昌
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-4-4
收藏
得分:0 
回复 6楼 不玩虚的
好吧,的确我基础不咋样,是得多练练

千百度
2013-04-14 12:18
chenwei926fl
Rank: 1
来 自:宜昌
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-4-4
收藏
得分:0 
回复 5楼 好聚好散
好吧,我错了
别人改不了我这一塌糊涂的错的

千百度
2013-04-14 12:24
快速回复:求指导,帮我看看下面三个实验错在哪
数据加载中...
 
   



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

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