| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1070 人关注过本帖
标题:关于集合运算的问题
取消只看楼主 加入收藏
hllSaturn
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-12-20
结帖率:62.5%
收藏
 问题点数:0 回复次数:0 
关于集合运算的问题
前面的都写出来了,不知道6.7怎么实现题目3:集合运算
功能:实现两个集合的运算,集合的元素采用小写字母’a’~’z’的形式等。
基本要求:、并运算、补运算、子集判断、组合
1设计简单的菜单,能够进行系统功能选择。
2实现两组集合的录
程序代码:
#include<stdio.h>
int main()
{
    int i,n,sum=0;
    printf("请输入工作天数:");
    scanf("%d",&n);
    for(i=1;i<=n;n=n-i++)
        sum=sum+i*i;
    printf("共奖励金币:%d\n",sum+n*i);
    return 0;
}
#include <stdio.h>
#include <string.h>
#include<windows.h>
#include <math.h>
#include<stdlib.h>
char a[100],b[100],c[100];
int p,q,i,j,n;
char d[26],t;
void init(char *a);
void display(char *a);
void jiao(char *a,char *b,char *c);
void bing(char *a,char *b,char *c);
void cha(char *a,char *b,char *c);
void bu(char *a);
void jihejihe(char *a,char *b);
void yuansujihe(char *a);
void main()
{

    int choice;
    while (1)
    {
        printf("\n\n\n\n");
        printf( "\t\t========================================");
        printf("\n\n");
        printf("\t\t             1:初始化                \n");
        printf( "\t\t             2:显示                  \n");
        printf("\t\t             3:交                    \n");
        printf("\t\t             4:并                    \n");
        printf("\t\t             5:差                    \n");
        printf("\t\t             6:补                    \n");
        printf("\n");
        printf("\t\t请选择;");
        scanf("%d",&choice);
        system("cls");
   
        switch(choice)
        {
            case 1:
                init(a);
                break;
            case 2:
                display(a);
                break;
            case 3:
                jiao(a,b,c);
                break;
            case 4:
                bing(a,b,c);
                break;
            case 5:
                cha(a,b,c);
                break;
            case 6:
                bu(a);
                break;
       
   
        }
    }
}
void init(char *a)//创建一个集合
{

    printf("请输入集合中元素个数");
    scanf("%d",&n);
    getchar();
    printf("请输入集合之中的元素");
    for(i=0;i<n;i++)
         scanf("%c",&a[i]);
    for(i=0;i<n;i++)
        printf("%c",a[i]);
printf("\n");
Sleep(8000);
system("cls");
}
void display(char *a)//输出一个集合
{
       printf("请输入集合中元素个数");
        scanf("%d",&n);
    getchar();
    printf("请输入集合之中的元素");
       for(i=1;i<=n;i++)
         scanf("%c",&a[i]);
    printf("{");
    for(i=1;i<=n;i++)
        {
        printf("%c",a[i]);
   
        }
    printf("}");
    Sleep(8000);
    system("cls");
}
void jiao(char *a,char *b,char *c)//求集合的交
{
    int k;
    k=1;
    printf("请输入第一个集合中元素个数");
        scanf("%d",&p);
    getchar();
     printf("请输入集合之中的元素");
        for (i=1;i<=p;i++)
            scanf("%c",&a[i]);
    getchar();
    printf("请输入第二个集合中元素个数");
        scanf("%d",&q);
    getchar();
       printf("请输入集合之中的元素");
        for (j=1;j<=q;j++)
            scanf("%c",&b[j]);
               printf("{");//求集合的交
        for(i=1;i<=p;i++)
        {
           for (j=1;j<=q;j++)
               if(a[i]==b[j])
               {
                 printf("%c",a[i]);
       
               }
        }

       printf("}");
         Sleep(8000);
    system("cls"); 
}
void bing(char *a,char *b,char *c)//求集合的并
{
    printf("请输入第一个集合中元素个数");
        scanf("%d",&p);
    getchar();
    printf("请输入集合之中的元素");
        for (i=1;i<=p;i++)
        scanf("%c",&a[i]);
getchar();
    printf("请输入第二个集合中元素个数");
        scanf("%d",&q);
getchar();
    printf("请输入集合之中的元素");
        for (j=1;j<=q;j++)
        scanf("%c",&b[j]);
    for(i=1;i<=p;i++)
        {
           for (j=1;j<=q;j++)
               if(a[i]==b[j])
                  a[i]='0';
    }
      printf("{");
      for(i=1;i<=p;i++)
          if(a[i]!='0')
        printf("%c",a[i]);
      for(j=1;j<=q;j++)
        printf("%c",b[i]);
        printf("}");
    Sleep(8000);
    system("cls"); 
}
void cha(char *a,char *b,char *c)//求集合的差
{
    printf("请输入第一个集合中元素个数");
        scanf("%d",&p);
getchar();
    printf("请输入集合之中的元素");
        for (i=1;i<=p;i++)
            scanf("%c",&a[i]);
getchar();
    printf("请输入第二个集合中元素个数");
        scanf("%d",&q);
getchar();
    printf("请输入集合之中的元素");
        for (j=1;j<=q;j++)
            scanf("%c",&b[i]);
        for(i=1;i<=p;i++)
        {
           for (j=1;j<=q;j++)
               if(a[i]==b[j])
               a[i]='0';
    }
    printf("{");
      for(i=1;i<=p;i++)
          if(a[i]!='0')
        printf("%c",a[i]);
        printf("}");
Sleep(8000);
    system("cls");
}
void bu(char *a)//集合的补
{
    printf("请输入集合中元素个数");
        scanf("%d",&n);
getchar();
    printf("请输入集合之中的元素");
        for (i=1;i<=n;i++)
        scanf("%c",&a[i]);
        for(i=0;i<26;i++)
            d[i]=i+97;

        for(i=1;i<=n;i++)
         for (j=0;j<26;j++)
         {
             if (a[i]==d[j])
                 d[j]='0';
         }
    printf("{");
      for(j=0;j<26;j++)
          if(d[j]!='0')
          printf("%c",d[j]);
          printf("}");
Sleep(8000);
    system("cls");
}
入功能。
3实现两组集合的交运算。
4实现两组集合的并运算。
5实现两组集合的补运算。
6实现两组集合的子集关系判断。
7实现两组集合的组合运算。
提示:设两组集合分别为A和B,则组合运算如 表示, ,该组合运算可以拆分为两步:1.先计算 ;2.再计算

搜索更多相关主题的帖子: 元素 字母 
2016-01-14 09:58
快速回复:关于集合运算的问题
数据加载中...
 
   



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

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