当前位置:首页 » 编程语言 » c语言随机产生50个整数

c语言随机产生50个整数

发布时间: 2022-07-01 22:19:19

c语言编程:使用随机函数rand()产生50个10~99的互不相同的随机整数

可以先给89 个数组赋值10 至99然后第一次随机1至89然后取出随机那个数的下标的值,把最后一个赋值给你刚才随机的数字下标,第二次从1至88随机一个数字,依次类推,循环五十次可以得到五十个不相同的。因为手机,没办法给出代码,敬请谅解

Ⅱ c语言生成50个随机数,对随机数进行快速排序。

楼下的几个回答我怎么看也不是快速排序,所以我做了一个用快速排序法排序的程序

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#define LEN 50

//快速排序(升)

void quicksup(int *arr,int low,int high)

{

int temp,l,r;

if(low<high)

{

l=low;

r=high;

temp=arr[low];

while(low<high)

{

while(low<high&&arr[high]>=temp)

high--;

if(low<high)

arr[low]=arr[high];

while(low<high&&arr[low]<=temp)

low++;

if(low<high)

arr[high]=arr[low];

}

arr[low]=temp;

quicksup(arr,l,low-1);

quicksup(arr,low+1,r);

}

}

//快速排序(降)

void quicksdown(int *arr,int low,int high)

{

int temp,l,r;

if(low<high)

{

l=low;

r=high;

temp=arr[low];

while(low<high)

{

while(low<high&&arr[high]<=temp)

high--;

if(high==LEN)

high--;

if(low<high)

arr[low]=arr[high];

while(low<high&&arr[low]>=temp)

low++;

if(low<high)

arr[high]=arr[low];

}

arr[low]=temp;

quicksdown(arr,l,low-1);

quicksdown(arr,low+1,r);

}

}

//初始化数组

void init(int *arr,int len)

{

int i;

for(i=0;i<len;i++)

{

arr[i]=rand()%1000;

}

}

//打印数组元素

void print(int *arr,int len)

{

int i;

printf(" ");

for(i=0;i<len;i++)

printf("%4d ",arr[i]);

printf(" ");

}

int main()

{

int arr[LEN];

srand((unsigned)time(NULL));

init(arr,LEN);

printf("排序前:");

print(arr,LEN);

quicksup(arr,0,LEN);

printf("排序后(升):");

print(arr,LEN);

quicksdown(arr,0,LEN);

printf("排序后(降):");

print(arr,LEN);

return 0;

}

Ⅲ 用c语言随机产生50个100到900之间的整数找出其中的素数并将这些素数按从小到大的顺序排列



#include<stdio.h>
#include<math.h>
intnum1[800];//定义随机抽取50个数据数组
intnum2[100];//定义素数素组

randomx(intm,intmin,intmax)//产生m个不重复随机数
{
inti,w,t;
inttotal;
srand(time(0));//设定随机种子,防止重复数据出现
for(i=min;i<max;i++)
{
num1[i]=i+1;
}
for(i=0;i<m;i++)
{
num1[i]=rand()%(max-min)+min;//随机函数rand引用
}

printf("随机从100到900中选取以下50个数值:");
for(i=0;i<m;i++)
{
printf("%d",num1[i]);
}
printf(" ");

}

prime()//判断是否为素数,并且进行排序
{
inti,k,t,n=0;
inta,b,c;
for(i=0;i<50;i++)//判断是否为素数
{
k=sqrt(num1[i]);
for(t=2;t<k;t++)
{
if(k%t==0)
{
break;
}
}
if(t>=k)
{
num2[n]=num1[i];
printf("%d",num2[n]);
n++;
}

}
for(a=0;a<n;a++)//从大到小排列数据
{
for(b=a+1;b<n;b++)
{
if(num2[a]<num2[b])
{
c=num2[a];
num2[a]=num2[b];
num2[b]=c;
}
}
}
printf(" ");

printf("其中素数按从大到小的数值排列:");
for(i=0;i<n;i++)
{
printf("%d",num2[i]);
}

}


main()
{
randomx(50,100,900);
prime();
}

问题原因分析:

可能没有将判断出来的素数数值进行保存,起码要定义2个数组分别保存随机产生的出来的50个数据,和其中素数的数据,上面是我给出的代码。
运行结果图:

Ⅳ 如何在C语言中产生50个100到200间的随机整数啊谢谢大家,您的回答对我真的很有帮助!

产生有重复的50数字

#include <stdio.h>
#include <stdlib.h>

void main(void)
{
int i, j;
int array[50];

for (i=0; i<50; i++)
{
array[i] = rand() % 100 + 100;
}

for (i=0; i<50; i++)
{
printf("%d ", array[i]);
}

printf("\n");
}

产生不重复的50位数字

#include <stdio.h>
#include <stdlib.h>

void main(void)
{
int i, j;
int array[50];

for (i=0; i<50; i++)
{
AA:
array[i] = rand() % 100 + 100;
for (j=0; j<i; j++)
{
if (array[i] == array[j])
{
goto AA;
}
}
}

for (i=0; i<50; i++)
{
printf("%d ", array[i]);
}

printf("\n");
}

Ⅳ 用c语言编写一个函数实现随机产生50个10到100之间的互不相等的整数,按从小到大的顺序排列后存入二进制文

1使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5)
=
2
floor(-2.5)
=
-3
2使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5)
=
3
ceil(-2.5)
=
-2
floor()是向负无穷大舍入,floor(-2.5)
=
-3;ceil()是向正无穷大舍入,ceil(-2.5)
=
-2。

Ⅵ 编一个c语言 产生50个100到200之间的随机整数,找出其中的常数,并将其按升序排

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

intmain()
{
inti,j,k,RAND[50];
srand(time(0));//设计随机数种子
for(i=0;i<50;i++)//产生随机数
{
RAND[i]=rand()%200;
if(RAND[i]<=100)
{
RAND[i]+=100;
}
}
for(i=0;i<50;i++)//排序
{
for(j=i;j<50;j++)
{
if(RAND[i]>=RAND[j])//从小到大
{
k=RAND[i];
RAND[i]=RAND[j];
RAND[j]=k;
}
}
}
for(i=0;i<50;i++)//输出
{
printf("%d ",RAND[i]);
}
return0;
}

Ⅶ C语言 编程 随机产生50个整数(15~500)之间,并降序排列

#defineN50
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inta[N],i,j,tmp;
floatavg;
srand(time(0));
for(inti=0;i<N;i++)
a[i]=rand()%(500-15)+15;
//降序排列
for(i=0;i<N-1;i++)for(j=i+1;j<N;j++)
if(a[i]<a[j]){
tmp=a[i];a[i]=a[j];a[j]=tmp;
}
//输出数组
for(i=0;i<N;i++){
printf("%4d",a[i]);
if(i%5==5-1)printf(" ");//5个数据一行
}
}

Ⅷ c语言,编程产生50个100~200之间的随机整数,找出其中的素数,并将其按升序排序

#include"stdio.h"
#include<stdlib.h>
#include"time.h"
voidoutprime(inta[]){
intx[50],i,j,k,t;
for(i=0;i<50;i++){//找素数并存入x
printf("%4d",a[i]);
if((a[i]&1)==0)
continue;
for(t=0,k=3;k*k<=a[i];k+=2)
if(a[i]%k==0)
break;
if(k*k>a[i])
x[t++]=a[i];
}
printf(" ");
for(i=0;i<t;i++){//素数排序并输出
for(k=i,j=k+1;j<t;j++)
if(x[k]>x[j])
k=j;
if(k-i)
j=x[k],x[k]=x[i],x[i]=j;
printf("%4d",x[i]);
}
printf(t?" ":"No... ");
}

intmain(intargv,char*argc[]){
inti,a[50];
printf("50randomnumbersfrom100to200 ");
srand((unsigned)time(NULL));//下伪随机种子
for(i=0;i<50;i++)
a[i]=rand()%100+100;
outprime(a);
return0;
}

运行结果:

Ⅸ c语言 用循环语句随机产生50个数 输出

//限定随机数为整数,且范围为0~k,其中k可以自己修改。
#include
#include
int main(void){
int i;
int k=10;
for(i=0;i<50;i++)
printf("%d ",rand()%k);
return 0;
}
//如果限定为小数输出,保留1位小数,范围为0~1。其中1可以自己修改。
#include
#include
int main(void){
int i;
int k=10;
for(i=0;i<50;i++)
printf("%.1f ",rand()%k/(k*1.0));
return 0;
}
//如果限定为小数输出,保留1位小数,范围为0~k。其中k和小数位数1可以修改。
#include
#include
int main(void){
int i;
int k=10;
for(i=0;i<50;i++)
printf("%.1f ",rand()%k/1.0);
return 0;
}

热点内容
java如何编译源文件 发布:2025-02-04 10:54:15 浏览:696
硬盘存储服务器怎么连接 发布:2025-02-04 10:00:55 浏览:27
javaip端口 发布:2025-02-04 09:27:09 浏览:857
国产存储科技进步二等奖 发布:2025-02-04 09:13:00 浏览:693
编程课v 发布:2025-02-04 08:45:00 浏览:109
模拟器能有手机脚本么 发布:2025-02-04 08:39:50 浏览:762
android显示html图片 发布:2025-02-04 08:35:31 浏览:795
如何查学信网账号及密码 发布:2025-02-04 08:33:55 浏览:506
linux32位jdk 发布:2025-02-04 08:33:55 浏览:250
康佳服务器连接失败是怎么回事 发布:2025-02-04 08:18:51 浏览:919