當前位置:首頁 » 編程語言 » 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;
}

熱點內容
編譯編譯有什麼 發布:2025-02-04 08:05:52 瀏覽:732
讓外網訪問內網伺服器 發布:2025-02-04 08:02:20 瀏覽:781
奶塊腳本菜地 發布:2025-02-04 07:46:35 瀏覽:238
條形碼識別源碼 發布:2025-02-04 07:45:55 瀏覽:457
mysql資料庫數據同步 發布:2025-02-04 07:41:07 瀏覽:760
安卓手機下載哪個北斗地圖 發布:2025-02-04 07:35:26 瀏覽:854
查詢伺服器ip地址代碼 發布:2025-02-04 07:08:28 瀏覽:675
python全雙工 發布:2025-02-04 06:57:46 瀏覽:196
c語言動態內存 發布:2025-02-04 06:57:06 瀏覽:78
sql倒序查詢 發布:2025-02-04 06:49:18 瀏覽:196