随机产生20个【10,99】以内整数,由大到小输出这20个数

如题所述

#include<stdio.h>
#include<stdlib.h>
int main()
{ int a[100]={0},x,i,j;
srand((unsigned) time(NULL)); //用时间做种子,每次产生随机数不一样
for(i=0;i<20;i++)
{
x=rand()%90+10; //产生10-99的随机数;
a[x]++;
}
for(i=99;i>=0;i--) //从大到小输出
for(j=0;j<a[i];j++)
printf("%d ",i);
printf ("\n");
system("pause");
return 0;
}追答

追问

怎么填

大神

追答

看不清

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-30
cmd里有个环境变量%random%可以产生0到32767之间的随机数,这样就可以用通用的公式%random%%%(max-min+1)+min来产生[min,max]区间里的随机数,批处理中求模得用两个%%符号,例子:
@REM 产生10个[4,12]间的随机数
@echo off
REM 启用延迟环境变量扩展
setlocal enabledelayedexpansion
REM 设置随机数的最小和最大值以及求模用的变量
set min=4
set max=12
set /a mod=!max!-!min!+1
for /l %%i in (1,1,10) do (
REM 产生[min,max]之间的随机数
set /a r=!random!%%!mod!+!min!
echo.
echo 随机数%%i:!r!追问

答案

答案

追答

改下里面数字就好了啊😳

第2个回答  2015-04-30
用什么语言编程?

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int a[100]={0},b;
int i;
srand(time(NULL));
for(i=0;i<20;i++)
{
b = rand()%90+10;
a[b]++;
}
for(i=99;i>=10;i--)
{
while(a[i]--)
{
printf("%d ",i);
}
}
printf("\n");
return 0;
}追问

c

追答

就是c写的,我的代码不用排序的

第3个回答  2015-04-30
for(i=1;i<=n-1;i++ )
{
x=a[i] ;
j=i-1; //(1)
while(j>=0 && a[j]> x ) //(2)
{
a[j+1]=a[j];
j--; //(3)
}
a[j+1]=x ;
}
第4个回答  2015-04-30
88.78.75.69.65.63.60.52.51.30

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网