| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 488 人关注过本帖
标题:请问这个程序哪里有错啊?集合运算
只看楼主 加入收藏
雨也有梦
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-6
结帖率:0
收藏
 问题点数:0 回复次数:3 
请问这个程序哪里有错啊?集合运算
#include<stdio.h>
#define MAXSIZE 100
typedef int Elemype
typedef struct
{
    Elemtype elem[MAXSIZE];
    int length;
}Sqlist;
//创建
void creat(Sqlist *L)
{
    int i,m;
    printf("\ninput m(集合元素数):");
    scanf("%d",&m);
    printf("\ninput data:");
    for(i=1;i<=m;i++)
        scanf("%d",&L.elem[i]);
    (*L).length=m;
}
//求交集C
void Sqlist-c(Sqlist A,Sqlist B,Sqlist *C)
{
    int i,j,k;
    i=1;j=1,k=0;
    while(i<=A.length&&j<=B.length)
    {
        if(A.elem[i]<B.elem[j])  i++;
        if(A.elem[i]>B.elem[j])  j++;
        if(A.elem[i]=B.elem[j])
        {
            (*C).elem[++k]=A.elem[i];
            i++;
            j++;
        }
    }
    (*C).length=k;
}
//求并集
void Sqlist-D(Sqlist A,Sqlist B,Sqlist *d)
{
    int i,j,k;
    i=1;j=1;k=0;
    while(i<=A.length&&j<=B.length)
    {
        if(A.elem[i]<B.elem[j])  
        {
            (*D).elem[++k]=A.elem[i];
            i++;
        }
        else
        {
            (*D).elem[++k]=B.elem[j];
            j++;
        }
        while(i<=A.legth)
        {
            (*D).elem[++k]=A.elem[i++];
        }
        while(j<=B.length)
        {
            (*D).elem[++k]=B.elem[j++];
        }
        (*D).length=k;
    }
}
//求差集
void Sqlist-E(Sqlist A,Sqlist B,Sqlist *E)
{
    int i,j,k;
    i=1;k=0;
    while(i<=A.length)
    {
        j=1;
        while(j<=B.length&&A.elem[i]!=B.elem[j++])
        {
            ;
        }
        if(i>B.length)
            (*E).elem[++k]=A.elem[i];
        i+;
    }
    (*E).length=k;
}
//输出
void print(Sqlist L)
{
   int i;
   for(i=1;i<=L.length;i++)
       prinntf("%d ",L.elem[i]);
}
//主函数

void main()
{
    Sqlist A,B,C,D,E;
    creat(&A);
    creat(&B);
    Sqlist-C(A,B,&C);
    printf("\nA交B=");
    print(C);
    Sqlist-D(A,B,&c);
    printf("\nA并B=");
    print(D);
    Sqlist-E(A,B,&E);
    printf("\nA-B=");
    print(E);
    getchar();
    getchar();
}

搜索更多相关主题的帖子: include 
2013-04-06 09:22
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
1.你觉得Sqlist-c能作函数名么?
2.if(A.elem[i]=B.elem[j])你觉得这句的意思是什么?
3.你知道你这几个集合运算的前提是什么吗?这个告诉你,元素得有序。否则不能这么用。

总之,这代码是你抄的。

(*L).length,呵呵,很久没见过这种用法了。

重剑无锋,大巧不工
2013-04-06 09:58
雨也有梦
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-6
收藏
得分:0 
回复 2楼 beyondyf
真是高手,原谅我吧!我刚学数据结构,一窍不通,希望你能指点指点!
2013-04-06 10:23
雨也有梦
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-6
收藏
得分:0 
回复 2楼 beyondyf
1.函数名不能有-
2应该是==
3(*L).length有错吗?
4在创建时有序输入吧
2013-04-06 10:35
快速回复:请问这个程序哪里有错啊?集合运算
数据加载中...
 
   



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

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