當前位置:首頁 » 編程語言 » 隨機產生50個兩位正整數c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

隨機產生50個兩位正整數c語言

發布時間: 2022-08-11 18:39:54

㈠ 隨機產生50個100以內的正整數放入數組中輸出這50個整數每行10個求這50個數中奇數的個數及平均值代碼用c語

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{

int a[50],sum,cnt,i;

srand(time(NULL));

for(i=0,cnt=0;i<50;++i)

{

a[i]=rand()%100+1;

if(a[i]%2)

{

sum+=a[i];

cnt++;

}

printf("%3d%c",a[i],(i+1)%10?' ':' ');

}

printf("%d %f",cnt,(float)sum/cnt);

return 0;

}



c語言程序出錯,代碼求指正

你的2位隨機數生成錯了,應該是a[i] = rand()%90 + 10;

以及你自己說的循環那個是x不是8(也不是50)

以及你存入b[i]的時候先把x++了,會導致b[0]沒有存入數據

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

intmain()
{
srand((unsigned)time(NULL));
inta[50]={0},b[50]={0};
intfirst,second,max,i,j;
intsum=0,x=0;
floataverage=0;

for(i=0;i<50;++i)
{
if(i%10==0)
putchar(' ');

a[i]=rand()%90+10;
sum+=a[i];
printf("%2d",a[i]);
}
average=(float)sum/50.0;

for(i=0;i<50;++i)
{
first=a[i]/10;
second=a[i]%10;
if(average<a[i]&&(first==5||second==5))
{
b[x++]=a[i];
}
}

for(i=0;i<x;++i)
{
for(j=0;j<7-i;++j)
{
if(b[j]<b[j+1])
{
max=b[j];
b[j]=b[j+1];
b[j+1]=max;
}
}
}
putchar(' ');
for(i=0;i<x;++i)
{
if(i%5==0)
printf("%d ",b[i]);
}

return0;
}

㈢ 隨機產生兩位整數50個放入數組x中..............

一、首先我根據你的思路,先生成50個隨機的兩位數,然後從這50個數里依次挑選出不重復的數。

'-------------------------------------------------------------------
'功能:生成50個隨機兩位整數,並挑選出不重復的數
'說明:先生成50個隨機兩位整數,然後在50個隨機整數里挑選出不重復的數
'''----------------------------------------------------------------
Dimsnum(49)AsInteger
Dimrnum()AsInteger'rnum數組生成不重復的的隨機數據
DimnumAsInteger'生成的隨機數
DimcountAsInteger'count表示rnum數組里的數量
DimiAsInteger
DimjAsInteger
'生成50個2位隨機整數
Fori=0To49
Randomize(Second(Now()))'以系統當前秒為隨機種子
snum(i)=Int(Rnd()*90)+10'生成一個兩位隨機整數
Nexti
'從snum數組中挑選不重復的數
Fori=0To49
num=snum(i)
'在rnum數組中查找生成的隨機數
Forj=0Tocount-1
Ifnum=rnum(j)Then
temp=1
ExitFor
EndIf
Nextj
'如果j的值跟count的值想等就說明生成的數並沒有重復,然後保存在rnum數組里
Ifj=countThen
ReDimPreservernum(count)
rnum(count)=num
count=count+1
EndIf
Nexti

二、根據你的要求我改進了一下編程思路,其實沒有必要先生成50個數,然後再去挑選,完全可以邊生成數,邊對這個生成的數進行檢查。一方面減少了數組對內存的需求,另一方面也減少了程序運算。

'----------------------------------------------------------------------
'功能:生成50個隨機兩位整數,並挑選出不重復的數
'說明:生成50個隨機整數的同時,每生成一個隨機數就檢查一下,挑出不重復的
'''---------------------------------------------------------------------
Dimrnum()AsInteger'rnum數組生成不重復的的隨機數據
DimnumAsInteger'生成的隨機數
DimcountAsInteger'count表示rnum數組里的數量
DimiAsInteger
DimjAsInteger
'生成50個2位隨機整數,並從中挑選不重復的數
Fori=0To49
Randomize(Second(Now()))'以系統當前秒為隨機種子
num=Int(Rnd()*90)+10'生成一個兩位隨機整數
'在rnum數組中查找生成的隨機數
Forj=0Tocount-1
Ifnum=rnum(j)Then
temp=1
ExitFor
EndIf
Nextj
'如果j的值跟count的值想等就說明生成的數並沒有重復,然後保存在rnum數組里
Ifj=countThen
ReDimPreservernum(count)
rnum(count)=num
count=count+1
EndIf
Nexti

三、在實際情況中,多數情況下是需要得到某一固定數量的不重復隨機數,但按你的思路只能得50個以內不固定數量的隨機數。對上述代碼稍微進行改進就可以生成50個(可以根據要求更改)不重復隨機數。

'----------------------------------------------------------
''''功能:生成50個不重復的隨機兩位整數
'''--------------------------------------------------------
Dimrnum()AsInteger'rnum數組生成不重復的的隨機數據
DimnumAsInteger'生成的隨機數
DimcountAsInteger'count表示rnum數組里的數量
DimiAsInteger
DimjAsInteger
'生成50個不重復的兩位隨機整數
DoWhilecount<50
Randomize(Second(Now()))'以系統當前秒為隨機種子
num=Int(Rnd()*90)+10'生成一個兩位隨機整數
'在rnum數組中查找生成的隨機數
Forj=0Tocount-1
Ifnum=rnum(j)Then
temp=1
ExitFor
EndIf
Nextj
'如果j的值跟count的值想等就說明生成的數並沒有重復,然後保存在rnum數組里
Ifj=countThen
ReDimPreservernum(count)
rnum(count)=num
count=count+1
EndIf
Loop

㈣ c語言 用循環語句隨機產生50個數 輸出

題目沒有說明數的范圍,以下程序為隨機生成0~10000以內的任意50個數。

#include<stdlib.h>
#include<time.h>
voidmain(){
inti,n=0;
srand(time(NULL));
for(i=0;i<50;i++)
{
printf("%-5d",rand()%10000);
n++;
if(n%10==0)printf(" ");
}
}

運行示例:

改變生成條件,即可生成具體要求范圍內的任意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個整數(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個數據一行
}
}

㈦ 隨機產生50個兩位整數(10~99范圍內)存入a數組中,以每行10個數輸出,

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(){
inta[50];
intsum=0;
srand((int)time(NULL));
for(inti=0;i<50;i++)
{

a[i]=(rand()%90)+10;
if(a[i]%7==0)
sum++;
printf("%d",a[i]);
if((i+1)%10==0)
printf(" ");
}
printf("sum=%d",sum);

}