mafan147 2022-04-01 16:28 采纳率: 50%
浏览 25
已结题

求scratch随机出题做法

出题器-整除-商不为1

条件除数2-200,被除数2-200

在链表中随机显示出100道除法题 格式 32/4=

  • 写回答

1条回答 默认 最新

  • 关注

    rand函数随机生成数字,用while循环100次就可以了啊

    #define _CRT_SECURE_NO_WARNINGS 1
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    
    typedef struct
    {
        int fz;
        int fm;
    }Data;
    
    typedef struct _linknode
    {
        Data data;
        struct _linknode* next;
    }LinkNode;
    
    //求数字n的因子
    void yinzi(int n, int a[], int* nmb)
    {
        int i = 2;
        int k = 0;
        for (; i < n && k<40; i++)
        {
            if (n % i == 0)
            {
                a[k++] = i;
            }
        }
        *nmb = k;
    }
    
    
    
    int main()
    {
        int i = 0;
        int nmb = 0;
        int yz[40],index;
        LinkNode* head, * p, * t;
        head = (LinkNode*)malloc(sizeof(LinkNode));
        head->next = NULL;
        p = head;
        srand((unsigned int)time(NULL));
    
        while (i < 100)
        {
            t = (LinkNode*)malloc(sizeof(LinkNode));
            t->next = NULL;
            while (1)
            {
                t->data.fz = rand() % 199 + 2; //分子 2-200
                //计算fz的所有因子,分母在因子中随机选择
                yinzi(t->data.fz, yz, &nmb);
                if (nmb > 0)
                    break;
            }
            
            index = rand() % nmb;
            t->data.fm = yz[index];
    
            p->next = t;
            p = t;
            printf("%d/%d=\n", t->data.fz, t->data.fm);
            i++;
        }
        return 0;
    
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月17日
  • 创建了问题 4月1日