| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 669 人关注过本帖
标题:帮帮忙。。。。。解决了给他充50块话费。。。
取消只看楼主 加入收藏
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
结帖率:88.89%
收藏
已结贴  问题点数:15 回复次数:3 
帮帮忙。。。。。解决了给他充50块话费。。。
以1到16随机输出5个数字的且不 重复的数组(位置不 论),若和下列每组数组中有4个或以上数字相同的数组不输出。。。。。
{1,2,3,4,5}{3,4,6,7,}{4,5,8,9,10}(这列数组不是固定的,应该是我输入的)
谢谢
搜索更多相关主题的帖子: 数字 
2012-06-06 20:21
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
回复 2楼 demonleer
没有搞懂
运行了结果也不对
以1到16随机输出5个数字的数组,,位置不 论,,我 这说的是所有能组成5个数字的数组。。。。。。。
在这结果上才和我那最后的要求做比较,,,,符合要求的输出而已。。。。
你在看看。。。谢谢
2012-06-08 19:01
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
还有
那要求的数组输入的组数也是我输入的,,,,,下面一个例子;前面的大致相同(随机输出的)的,只是,后面的要求还做的比较不一样而已,,你做下比较。。
#include <stdio.h>
#include <stdlib.h>

int  same_state=0;            //包含状态位
void findout(int a[],int n,int m,int r,int q[],int **BB,int bb);
void main()
{
    int n,r;int *p,*q;
    int b,bb;int **B;        //存储要删除的数组
    printf("要找的不同的整数个数:");
    scanf("%d",&n);
    p=(int*)malloc(n*sizeof(int));
    printf("输入%d个不同的整数:",n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&p[i]);
    }
    printf("输入要找元素组合的个数:");
    scanf("%d",&r);
    q=(int *)malloc(r*sizeof(int));
   
   
    printf("\n输入你将要输入的数组个数:");          //根据你的例子有两个数组,这里应该输入2
     scanf("%d",&bb);
    B=(int **)malloc(bb*sizeof(int*));

    for( i=0;i<bb;i++)
    {
        B[i]=(int *)malloc(sizeof(int));
        B[i][0]=0;
        printf("请输入第%d个数组:",i+1);
      for(int j=2;1;j++)
      {
      
      
         scanf("%d",&b);
         if(b==0) break;                                   //每输入一个数组后请输入一个0来结束输入
         else        
         {
             B[i]=(int *)realloc(B[i],j*sizeof(int));
             B[i][j-1]=b;
             B[i][0]++;
         }

      }
    }
    findout(p,n,r,r,q,B,bb);
}

void findout(int a[],int n,int m,int r,int q[],int **BB,int bb)
{
    for(int i=n;i>=m;i--)
    {
        q[m-1]=a[i-1];
        if(m>1)
            findout(a,i-1,m-1,r,q,BB,bb);
        else
        {   

    /*---这段是比较,如果输出数组中包含了其中一项要删除的数组,same_state将变为b,否则仍然是0---*/
            same_state=0;
            for(int x=0;x<bb;x++)
            {
               for(int y=0;y<BB[x][0];y++)
               {
                  if(same_state!=y) break;
                  for(int z=0;z<r;z++)
                  {
                     if(q[z]==BB[x][y+1])
                     {
                       same_state++;
                     }

                  }
                  
               
               }
               if(same_state==BB[x][0]) break;
               else              same_state=0;
            }

    /*---------------------------------------------------------------------------------*/
            if(same_state!=0)
            {
            for(int j=r-1;j>=0;j--)
                printf("%d   ",q[j]);
            putchar('\n');
            
            }
        }
        
    }

}
2012-06-08 19:16
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
回复 8楼 demonleer
你看懂我 上面给你的例子没有。。。我说的那要求做比较的数组是我输入的,,,还有
那做比较的数组的组数也是我输入的,,这里。你把我要作比较数组的组数定格为3组了,
可以变动不,就像我上面给你的例子一样,,上面的例子中那随机输出的数字和(1到16)是我输入的,组成几维数组也是我输入定的,做比较数组的组数也是我输入定的,只是,要求做的比较不一样而已,,,你在帮帮我吧,,,,谢谢
2012-06-09 17:28
快速回复:帮帮忙。。。。。解决了给他充50块话费。。。
数据加载中...
 
   



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

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