sorry¤ 2021-11-19 00:55 采纳率: 20%
浏览 109
已结题

c/c++n个数两两配对不重复

求助!如果随机匹配n个数,要实现两两配对,若共有奇数个数则随机选一个数来配对两个数。的代码_(:з」∠)_

  • 写回答

1条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main()
    {
        int n=9, i, j, x,y;
        int a[n];
        int b[n];
        srand((unsigned)time(NULL));
        for( i=0; i<n; i++ )
        {
            a[i] = i+1; //这里直接赋值19了,也可以改成 scanf("%d", &a[i]); 读取用户输入
            b[i] = 0;
        }
        for( i=0; i<n/2; i++ )
        {
            do{
                x = rand() % n;
            } while (b[x]);
            b[x] = 1;
            do{
                y = rand() % n;
            } while (b[y]);
            b[y] = 1;
            printf("%d %d\n", a[x],a[y]);
        }
        if (n%2==1)
        {
            for (x = 0; b[x]; x++) { }
            b[x] = 1;
            do{
                y = rand() % n;
            } while (y==x);
            b[y] = 1;
            printf("%d %d\n", a[x],a[y]);
        }
        return 0;
    }
    

    如有帮助,望采纳!谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月19日