跪求C语言数据结构程序设计有一集合中有 N 个元素,每个元素均为自然数.给定一个 total (假设每个 元素值均小于total),求满足条件的所有子集,子集中各元素之和应等于total最好描述下程序功

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 02:37:30

跪求C语言数据结构程序设计有一集合中有 N 个元素,每个元素均为自然数.给定一个 total (假设每个 元素值均小于total),求满足条件的所有子集,子集中各元素之和应等于total最好描述下程序功
跪求C语言数据结构程序设计
有一集合中有 N 个元素,每个元素均为自然数.给定一个 total (假设每个 元素值均小于total),求满足条件的所有子集,子集中各元素之和应等于total
最好描述下程序功能内容与重点难点,要做报告和答辩

跪求C语言数据结构程序设计有一集合中有 N 个元素,每个元素均为自然数.给定一个 total (假设每个 元素值均小于total),求满足条件的所有子集,子集中各元素之和应等于total最好描述下程序功
/*
 *程序功能:有一集合中有 N 个元素,每个元素均为自然数.给定一个 total (假设每个 元素值均小于total),求满足条件的所有子集,子集中各元素之和应等于total
 */
#include <stdio.h>
#define N 5//定义集合中元素的个数
#define TOTAL 10//定义子集元素之和total
int main(int argc, char** argv)
{
    int i = 0;//循环变量
    int j = 0;//循环变量
    int sum = 0;//定义各子集元素之和
    long int loop = 1;//定义总循环数
    int index = 0;//定义子集索引
    int array[N] = {0};//定义集合array
    int tmp[N] = {0};//定义子集tmp
    for(i=0; i<N; i++)//循环输入集合中的元素
    {
        printf("Please input array[%d]:", i);
        scanf("%d", &array[i]);
        loop = loop * 2;//总循环数*2
    }
    for(i=0; i<loop; i++)//主循环,假设i=5,则其二进制表示为00101,当有一位为1时,该位位置就是集合中的索引,即对应着源集合中的array[2]和array[4]
    {
        sum = 0;
        index = 0;
        for(j=0; j<N; j++)//清空子集,准备存储下一个子集
        {
            tmp[j] = 0;
        }
        for(j=0; j<N; j++)
        {
            switch((i>>j) & 1)//循环右移,与1相与,取出第j位
            {
                case 1://取出i的第j位为1的索引
                        tmp[index] = array[N-j-1];//将i的第j位为1所代表的源集合中的元素放入子集中
                        sum = sum + array[N-j-1];//将i的第j位为1所代表的源集合中的元素累加
                        index ++;
                        break;
                default:
                    break;
            }
        }
        if(sum == TOTAL)//当子集元素之和等于TOTAL时,打印子集元素
        {
            for(j=0; j<N && tmp[j]!=0; j++)
            {
                printf(" +%d",tmp[j]);
            }
            printf("=%d\n",TOTAL);
        }
    }
    return 0;
}

 

跪求C语言数据结构程序设计有一集合中有 N 个元素,每个元素均为自然数.给定一个 total (假设每个 元素值均小于total),求满足条件的所有子集,子集中各元素之和应等于total最好描述下程序功 数据结构和C语言数据结构有什么区别 数据结构和C语言有什么区别? 数据结构 用C语言编程:求邻接矩阵存储结构的有向图G中各结点的出度 C语言数据结构丰富这句话怎么理解?说得具体点,最好能告诉我C语言有那些数据结构 计算1000以内有多少个数其各位数字之和是7 程序设计C语言 循环结构程序设计 有一数列 2/1 3/2 5/3 8/5 ...编写程序数列前20项之和, 我学的是C语言 求答一张卷子,C语言的,一、简答题(每小题4分,1.C语言关于标识符的规定是?答:2.结构化程序设计包含哪几种基本的程序结构?答:3.C语言的数据类型有哪些?答:4.*运算符和&运算符的含义是 跪求 C语言 ACM题目 图的深度优先遍历序列Description图(graph)是数据结构 G=(V,E),其中V是G中结点的有限非空集合,结点的偶对称为边(edge);E是G中边的有限集合.设V={0,1,2,……,n-1},图中的结点又称为 集合的加法,减法,乘法怎么算?比如程序设计里有集合A减集合B C语言中,数据结构存储结构属于线性还是非线性? C语言中,数据结构存储结构属于线性还是非线性? 广义表基本运算(建立、查找、求表头、求表尾、深度)数据结构的设计题目,要求用C语言实现~``谢谢~·符合要求有追加分的``` 请问谁有数据结构实验 蛇形矩阵 的心得体会,是数据结构和C语言编程的.字数越多越好,质量无须太高. 求C语言循环程序设计实验报告1)把100~300之间不能被3整除的数输出.2)有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13,…求这个数列的前20项之和3)求(1! + 2! + 3! + … + 20!) 4)输入一行字符,分别统计出 英语翻译C语言程序设计、VC++可视化语言设计、JAVA程序设计基础、VB程序设计、数据结构、计算机网络应用、自动控制理论、单片机原理及接口技术、微机原理、数字信号处理等.自动控制理 ★ c语言中的线性数据结构是指什么?下列叙述中正确的是 BA 有一个以上根结点的数据结构不一定是非线性结构B 只有一个根结点的数据结构不一定是线性结构C 循环链表是非线性结构 D 双向 数据结构和c有什么不同?