隨機產生4個不重復的 0-9 之間的整數
從小到大排序
輸入猜測的數字 1 2 3 4
A表示數字正確 位置正確的個數 2A
B表示數字正確 位置不正確 2B
如何產生隨機數
//放種子
srand((unsigned int)time(NULL));
//產生隨機數 num % 10 0 ... 9
rand() % (max+1);
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
//初始化數組
void initArray(int array[]);
//打印數組內容
void show(int array[]);
int main(int argc, const char * argv[]) {
//定義一個數組 用于存放產生的隨機數
int originArray[4] = {};
//初始化數組
initArray(originArray);
//打印
show(originArray);
return 0;
}
//初始化數組
//1 2 1
void initArray(int array[]){
srand((unsigned int)time(0));
for (int i = 0; i < 4; i++) {
int temp = 0;
bool isExist = false;
while(1){
//產生一個隨機數
temp = rand() % 10;
//1 2 3
//判斷這個數字在數組里面是否存在
//i表示當前數組里面已經存進去幾個了
for (int j = 0; j < i; j++){
if (array[j] == temp) {
//存在了
isExist = true;
break;
}
}
//什么情況下出來
//1.break 2.遍歷完畢還沒找到相同
if (isExist == false) {
break;
}
}
//將這個隨機數添加到數組里面
array[i] = temp;
}
}
//打印數組內容
void show(int array[]){
for ( int i = 0; i < 4; i++) {
printf("%d ",array[i]);
}
printf("\n");
}