C++随机产生10个不同的数代码。注意是不同的。

如题所述

4 5 1 6 10 8 7 2 3 9 Press any key to continue
5 4 3 7 9 10 2 1 6 8 Press any key to continue
1 9 7 4 6 2 3 5 10 8 Press any key to continue

#include<iostream>
#include <ctime>
using namespace std;
int main()
{
int i,j,num,flag,arry[10];
srand((unsigned)time(NULL));
for (i=0;i<10;i++)
{
flag=1;
num=rand()%10+1;
for (j=0;j<i;j++)
if (arry[j]==num)
{
flag=0;
break;
}
if (flag)
{
arry[i]=num;
cout<<arry[i]<<" ";
}
else
i--;
}
return 0;
}追问

感觉是对的,能不能给讲讲,加点备注也行。

追答

#include
#include

using namespace std;

int main()
{
int i,j,num,flag,arry[10]={0};
srand((unsigned)time(NULL));
for (i=0;i<10;i++)
{
flag=1; //标记 用来标记是否有重复数字
num=rand()%10+1; //将生成的随机数存放入临时变量
for (j=0;j<i;j++) //循环对比
{
if (arry[j]==num) //如果有相同 改变标识变量 则跳出循环
{
flag=0;
break;
}
}
if (flag) //判断标识是否改变
{
arry[i]=num; //如果没改变 直接将临时变量num赋值给数组arry
cout<<arry[i]<<" "; //输出
}
else //如果改变
{
i--; //则将目前循环作废 循环变量自减 重新循环
}
}
return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-10
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main()
{
int i,num[10];
srand(time(NULL));
for(i=0;i<10;i++)
{
num[i]=rand();//产生随机数
}
return 0;
}
第2个回答  2012-04-10
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;

int main()
{
int a;
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
a=rand();
cout<<a<<endl;
}
return 0;
}
第3个回答  2012-04-10
xx

如何用c++生成10个不重复的随机数
include <stdio.h> include using namespace std;int main(){ int i,j;int x[10];int v = 50,n=10; \/\/生成50以内大小的随机数 共10个 srand((unsigned)time(NULL));x[0] = rand() % v +1;for (i=0;i<n;i++) { Lab: x[i] = rand() % v +1;for (j=0;j...

提问c++生成1到10的随机数程序
我这是产生了10个1-10的随机数,楼主可以测试一下 include <stdlib.h> include <stdio.h> include main( ){ int i;srand((unsigned)time(NULL));for( i = 0; i < 10;i++)printf( "%d\\n", rand()%10+1);}

怎样在C++中产生10个30~100的随机数
C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand()。不过,由于rand()的内部实现是用线性同余法做的,所以生成的并不是真正的随机数,而是在一定范围内可看为随机的伪随机数。代码如下:include <iostream> include <cstdlib> include <ctime> define random(a,b) (rand()%(...

c++生成随机数,要求在1-10之间,并且每次生成的值都不一样,该如何解决...
比较懒,直接借用楼上的了,别介意哈(纯手打,写错了自行调整一下 int j; \/\/ 用来检查重复 static int a[0]={0,};cout<<"这是一个随机生成10个数字的程序,生成的数在1到10之间..."<<endl;for(i = 0; i < 10; ) \/\/ 下标递增放后面处理 { a[i] = rand()%10 +1;for(j= ...

怎么用C++编写一个rand()函数,功能上是产生10个0-100之间的随机整数
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:for (int i = 0; i < 10; i++)printf("%d ", rand() % 100 +1);3、编译器运行test.cpp文件,此时成功通过rand产生了10个1-100内的...

sand的用法
C\/C++语言sand的用法?没这东西吧,以下是srand的用法:include <stdio.h>#include <stdlib.h>#include int main(){int i;srand(time(0));for (i = 0; i < 10; i++)printf("%d\\n", rand());return 0;}这样以当前时间为初始种子,产生10个随机数。时间不同,这十个随机数就不同。...

请问怎么使用C\/C++语言生成10个在区间[9,99]之间的随机数字呢。。。
(1)设随机种子:include \/\/ 包含头文件 srand((unsigned)time(null));\/\/用当前时间产生一个种子,这样,随机数的序列会随机 (2)产生随机数:用 rand()函数,产生随机数。include \/\/头文件 include \/\/头文件 例如:产生 0到m 范围的 double 型随机数:double x,r,m = 30.0;r = ((double...

c++:随机产生10个两位数找出其最大值,最小值,并计算平均值
》代码1:》》:\/\/c++:随机产生10个两位数找出其最大值,最小值,并计算平均值 include<iostream> include include<stdlib.h> using namespace std;int main(){ srand((unsigned)time(00));\/\/播种子,随时间的不同播不同的种子,故每次产生的随机数都不相同,由于用到time,故需要头函数time.h...

在C++怎样让计算机产生出10个两位正整数
随机数一般使用标准库的rand生成,rand生成的随机数范围为0 ~ RAND_MAX (32767)如果要取两位正整数,可以将随机数除以100取余数,这样的结果是0 - 99,再将 0 - 9的结果丢弃即可 至于产生10个,取十次就可以了,比如使用for(int i = 0; i < 10; ++i)执行10次取数代码就可以了 代码就不贴...

C++随机抽10个数 排列,看不懂
int a[12];int i,j,k;for (i=0;i<11;i++){ a[i]=rand()%100; \/\/取随机数0 ~ 100 cout<<a[i]<<'\\t';for (j=1;j<12;j++) \/\/把得到的随机数按大小放入a[1]~a[11]中 if(a[i]<a[j]){ k=a[i];a[i]=a[j];a[j]=k;} } cout<<endl;for(i=0;i...

相似回答