使用 a= rand(),b= rand() 隨機取得整數之後,比較之。若 a<b,正確則傳回值為1, 錯誤則傳回0。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b;
a= rand();
b= rand();
printf("a=%d b=%d a<b=%d\n",a,b,a<b);
return 0;
}
執行結果:
a=41 b=18467 a<b=1
說明:
這樣也可以 printf("%d < %d = %d\n",a,b,a<b);
使用上面的程式有問題,每次執行的結果都是一樣的 a=41 b=18467,可見這個程式不可以取得亂數,應該使用下面的程式才可。
#include <stdio.h>
#include <stdlib.h> /* 亂數相關函數 */
#include <time.h> /* 時間相關函數 */
int main(){
/* 設定亂數種子 */
srand( time(NULL) );
/* 產生亂數 */
int a = rand();
int b = rand();
printf("a= %d b= %d a<b= %d\n", a,b,a<b);
return 0;
}
執行結果:
a= 3117 b= 26387 a<b= 1
a= 3172 b= 12502 a<b= 1
a= 3234 b= 20114 a<b= 1
但也奇怪?每次都是 a<b 似乎也有點不對!
沒有留言:
張貼留言