一个简单的程序(随便输入n个数要求随机选出m个数 n>m 0<n<99 0<m<10)怎么弄?最好有程序过程,还有注释
- 提问者网友:雪舞兮
- 2021-05-15 21:57
- 五星知识达人网友:长青诗
- 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写的,如果是其他语言,我可以帮你改下,不过思路就是这样了
呵呵,希望采纳啊