本文目錄一覽:
- 1、C語言怎麼實現隨機分配?
- 2、輸入一個數與c語言產生隨機數相同則輸出,不相同則失敗
- 3、c語言 隨機生成 10 個除法算式(被除數和除數都為 1-100 之間的整數,並且被除數能為除數整除)?
- 4、【正確給20分】c語言如何弄隨機
C語言怎麼實現隨機分配?
srand(
(unsigned)time(
NULL
)
);
;
num=rand()%k;
用這個生成隨機數你應該會吧
然後給6個長方形每個一個隨機數,排序,然後將較大的2個一組,較小的2個一組,中間2個一組
也可以給每個方塊一個0-2的隨機數,同時在生成隨機的時候加特判,如果對應數字的組裡滿了就重作隨機
由於方塊數少,不用太在乎演算法時間複雜度
輸入一個數與c語言產生隨機數相同則輸出,不相同則失敗
#include stdio.h
#include time.h
#include stdlib.h
#include math.h
void main()
{
int rand_num();
int a,guess;
a=rand_num();
scanf(“%d”,guess);//輸入
if(guess==a){
printf(“yes,%d”,a);
}
else printf(“NO”);
}
int rand_num()//產生1個隨機數
{
int a;
srand((unsigned)time(0));
a=rand()%10;
return a;
}
下面送你一個才數字的遊戲程序:
#include stdio.h
#include time.h
#include stdlib.h
#include math.h
void rand_num(int v[]);
void main()
{
int math[4],guess[4];int result[4]; //math用來裝產生的隨機的4位數,guess用來裝玩家猜的4位數,result用來放映匹配的結果
int i,j,n=0,b,a,d;//n用來標誌是否還有競猜的機會,b位玩家輸入的4位數
int c;//用於檢驗每一位都配對正確
rand_num(math);//裝數字不相同的4個數進入math
printf(“競猜不同數字的4位數開始!(共10次機會)\n”);
while(n!=10){
scanf(“%d”,b);//玩家輸入猜的4位數
d=1;
while(d){
for(i=0;i4;i++){//把4位數的每一位裝入guess中
guess[i]=(b%(int)pow(10,4-i))/(int)pow(10,3-i);
}
d=0;
for(i=0;i4;i++){
a=guess[i];
if(a==guess[i-1]||a==guess[i-2]||a==guess[i-3]){
d=1;
}
}
if(b9876||b0123){//如果輸入的不是4位數,重新輸入
d=1;
}
if(d){
printf(“請輸入不同數字的4位數\n”);
scanf(“%d”,b);//玩家輸入猜的4位數
}
}
for(i=0;i4;i++){//初始化result
result[i]=0;
}
for(i=0;i4;i++){ //系統對輸入的數與抽到的數進行匹配。並裝放映結果入result中
for(j=0;j4;j++){
if (guess[i]==math[i]){
result[i]=’A’;
break;
}
else if (guess[i]==math[j]){//掃描guess中的每一位的數是否有與math某一位相同的數
result[i]=’B’;
break;
}
else result[i]=’*’;
}
}
printf(“匹配結果提示如下:”);
for(i=0;i4;i++){//顯示配對結果。
printf(“%c”,result[i]);
}
printf(“\n”);
c=0;//初始化C。不然的話之前c可能為1、 2、 3
for(i=0;i4;i++){//如果匹配完全正確,退出競猜循環
if(result[i]==’A’){
c++;
}
}
if(c==4){
n=10;
}
else {
n++;
printf(“錯誤!請重新競猜\n”);
}
}
printf(“系統隨機抽到的4位數結果如下:\n”);
for(i=0;i4;i++){ //輸出隨機的4位數
printf(“%d”,math[i]);
}
printf(“\n”);
}
//產生數字不相同的4位數
void rand_num(int v[])//產生數字不相同的4位數
{
int a,i; //用來裝暫時產生的隨機數的個位數
srand((unsigned)time(0));
for(i=0;i4;i++){ //給4個位裝隨機值
a=rand()%10;
while(a==v[i-1]||a==v[i-2]||a==v[i-3]){//數組下標是負數的話就是上一個單元的值。一般不是個位數
a=rand()%10;
}
v[i]=a;//產生隨機數,取其個位數
}
}
c語言 隨機生成 10 個除法算式(被除數和除數都為 1-100 之間的整數,並且被除數能為除數整除)?
代碼文本:
#include “stdio.h”
#include stdlib.h
#include “time.h”
int prime(int n){//素數
int i;
if(n2 !(n1) || n2)
return 0;
for(i=3;i*i=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int n,m,i,w,s;
srand((unsigned)time(NULL));
for(s=i=0;i10;i++){
while(prime(n=rand()%100+1));
while(n%(m=rand()%(n/2+1)+2));
printf(“請輸入答案:\n%3d ÷%3d = “,n,m);
if(scanf(“%d”,w)==1 w==n/m){
printf(“√\n”);
s+=10;
}
else
printf(“×\n”);
}
printf(“你得了%d分…\n”,s);
return 0;
}
【正確給20分】c語言如何弄隨機
我給你一個改過以後的代碼得了,改了那些地方,以及改的原因,請參考注釋:
#includeconio.h
#includestdio.h
#includestdlib.h //加上這個頭文件,隨機數庫函數要用
#includetime.h //加上這個頭文件,隨機數庫函數要用
main()
{
int a,i=2;
int num;
srand((unsigned)time(NULL)); //提供一個種子,這個就是生成隨機數的一個固定步驟,記住就行了
num=rand()%101; //注意一下,你要生成的是number0-100,所以應該用生成的隨機數除以101取餘數
printf(“press a number0-100,but you only have 3 chance\n”);
scanf(“%d”,a);
while(a!=numi0) //將原來的11改成生成的隨機數
{
if (anum) //將原來的11改成生成的隨機數
{
printf(“too big\n”);
}
else
{
printf(“too small\n”);
}
scanf(“%d”,a);
i–;
}
if(a==num) //將原來的11改成生成的隨機數
{
printf(“right”);
}
else
{
printf(“you havn’t chance”);
}
getch();
}
上述代碼已經在VC上編譯運行確認了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/243082.html