当前位置: 代码迷 >> C语言 >> 求助,帮我看看这个程序,想了n次,都想不通,到底那里错了
  详细解决方案

求助,帮我看看这个程序,想了n次,都想不通,到底那里错了

热度:53   发布时间:2007-12-21 14:17:05.0
求助,帮我看看这个程序,想了n次,都想不通,到底那里错了
//根据用户的输入,进行随机分组……
#include"stdio.h"
#include"stdlib.h"
void main()
{
    int people,team,count,m;    //count是每组多少人,m用来记录当前随机的号码……
    int i,j,k=1;      //i是控制组的输出,j控制一组多少人的输出,k是数组A的下标。
    int a[200];    //定义一个数组用来记录输出过的号码。
    printf("请输入总人数:");
    scanf("%d",&people);        //接收要分组的总人数
    printf("你想分几组:");
    scanf("%d",&team);        //分多少组
    count=people/team;            //每组多少人  
    for(i=1;i<=team;i++)   //控制组的循环
    {
        printf("第%d组的成员为:\n",i);
        for(j=1;j<=count;j++,k++)    //控制每组的人数
        {
            a[0]=0;     //初始数组
            a[k]=m=rand()%people+1;     //随机一个数,1-people
            for(int d=0;d<=k;d++)     //从A[0]开始比较
            {
                if(a[d]==m)      //用当前的号码和以前出现过的号码进行比较
                    j--;       //出现过的话就 j--
                else
                    printf("%d\n",m);     //没有就输入这个数
                break;
            }
            
        }printf("\n");
    }    
}
搜索更多相关的解决方案: include  people  count  

----------------解决方案--------------------------------------------------------
出现过的数你用J--,只是表示你把总数少了一个,并不是把那个出现的数删除了
因此在下面的组中还是可能出现这个数
----------------解决方案--------------------------------------------------------
恩,就是哪个样子的
----------------解决方案--------------------------------------------------------
可以记住下标,然后把后面的数前移.这样可以避免随机选到的数再次被选到.
----------------解决方案--------------------------------------------------------
噢,谢谢了!!~~
----------------解决方案--------------------------------------------------------
  相关解决方案