永发信息网

一个简单的程序(随便输入n个数要求随机选出m个数 n>m 0<n<99 0<m<10)怎么弄?最好有程序过程,还有注释

答案:2  悬赏:60  手机版
解决时间 2021-05-16 21:55
  • 提问者网友:雪舞兮
  • 2021-05-15 21:57
一个简单的程序(随便输入n个数要求随机选出m个数 n>m 0<n<99 0<m<10)怎么弄?最好有程序过程,还有注释
最佳答案
  • 五星知识达人网友:长青诗
  • 2021-05-15 23:34

Delphi写的,//后面是注释


procedure TForm1.btn1Click(Sender: TObject);
var    //变量
 m:Integer;
 n:string;
begin
  Randomize;    //重置随机数种子
  if InputQuery('输入框','请输入N的个数:  ',n) then    //输入框,输入N的数值
  begin   //StrtoInt是把N从字符串转换成数值
    if (StrToInt(n)<99) and (StrToInt(n)>0) then else Exit;    //判断N是否符合要求
    repeat
    m:=Random(8)+1;    //生成M的随机数
    until (StrToInt(n)>m);    //判断N是否大于M,小于则重新生成M
    ShowMessage(IntToStr(m));   //显示M的值
  end;


end;

全部回答
  • 1楼网友:逃夭
  • 2021-05-16 00:26

#include<stdio.h> #include<stdlib.h> void main() { int i,n,m,count=0,hao; //count计数,hao是随机函数生成的下标 int array[50],flage[50]={0};//flage[50] 是标志 printf("请输入n个数:");   scanf("%d",&n); for(i=0;i<n;i++)    scanf("%d",&array[i]);   getchar();//接收最后一个scanf()的enter   printf("随便选出m个数:");   scanf("%d",&m);  for(i=0;;i++)  {    hao=rand()%n;//随机生成    if(flage[hao]==0) //开始标志为0,后为1,说明别选择了    {flage[hao]=1;    if(flage[hao]==1) {    printf("%d ",array[hao]);count++;}    }

 if(count==m) break;//选到了m个数,退出循环 }  printf("\n"); }

//我刚帮你学了个呀!用c写的,如果是其他语言,我可以帮你改下,不过思路就是这样了

呵呵,希望采纳啊

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯