2019-08-03

一、難點:

1.???產(chǎn)生隨機數(shù):??srand((unsigned?int)time(NULL));????int?temp=rand()%10;(產(chǎn)生10以內(nèi)的隨機數(shù)。)

2.?插入排序:????產(chǎn)生的數(shù)字和j對應(yīng)的數(shù)字一個一個進(jìn)行比較,如果發(fā)現(xiàn)temp

3.?產(chǎn)生隨機數(shù)過程中的邏輯思維和循環(huán)嵌套。定義布爾類型判斷產(chǎn)生的隨機數(shù)是否重復(fù)??并考慮最內(nèi)層循環(huán)結(jié)束出現(xiàn)的兩種結(jié)果!(此處為重點)(1)重復(fù)->break?(2)比完了?j==i?->結(jié)束了?沒有重復(fù)。


二、程序:

1、#import?

int?main(int?argc,?const?char?*?argv[])?{

int?num[]?=?{3,0,1,8,7,2,5,4,6,9};

//冒泡排序?通過一次排序?最大的沉底

/*

for?(int?i?=?0;?i?<?10;?i++){//比較的次數(shù)

for?(int?j?=?0;?j?<?10-i-1;?j++){

if?(num[j]?>?num[j+1])?{

//交換j和j+1的值

int?temp?=?num[j+1];

num[j+1]?=?num[j];

num[j]?=?temp;

}

}

}

*/

//選擇排序?一次取出一個值?默認(rèn)他是最小的

//如果發(fā)現(xiàn)比這個數(shù)小?就交換

//遍歷整個數(shù)組?找到一個最小的

//3,0,1,2,5,4,6

/*

for?(int?i?=?0;?i?<?10-1;?i++){

//默認(rèn)這是最小的

//int?min?=?num[i];//3

for?(int?j?=?i+1;?j?<?10;?j++){

//控制用min和后面的每一個進(jìn)行比較

if?(num[i]?>?num[j]){

//j對應(yīng)的數(shù)字比min還小?交換

int?temp?=?num[i];

num[i]?=?num[j];

num[j]?=?temp;

}

}

//一次遍歷之后找到最小的值min

//num[i]?=?min;

}

*/

//插入排序

for?(int?i?=?0;?i?<?10;?i++)?{

//讓i和i+1比較大小

if?(num[i]?>?num[i+1])?{

//交換值

int?temp?=?num[i];

num[i]?=?num[i+1];

num[i+1]?=?temp;

//讓num[i]和前面的所有進(jìn)行比較

for?(int?j?=?i;?j?>?0;?j--){

if?(num[j]?<?num[j-1])?{

temp?=?num[j];

num[j]?=?num[j-1];

num[j-1]?=?temp;

}

}

}

}

for?(int?i?=?0;?i?<?10;?i++)?{

printf("%d?",?num[i]);

}

printf("\n");

return?0;

}

2、/*

隨機產(chǎn)生4個不重復(fù)的 0-9 之間的整數(shù)

從小到大排序

輸入猜測的數(shù)字 1 2 3 4

A表示數(shù)字正確 位置正確的個數(shù) 2A

B表示數(shù)字正確 位置不正確 2B

1.如何產(chǎn)生隨機數(shù)

? ? //放種子

? ? srand((unsigned int)time(NULL));

? ? //產(chǎn)生隨機數(shù) num % 10? 0 ... 9

? ? rand() % (max+1);

*/

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <stdbool.h>

//初始化數(shù)組

void initArray(int array[]);

//打印數(shù)組內(nèi)容

void show(int array[]);

int main(int argc, const char * argv[]) {

? ? //定義一個數(shù)組 用于存放產(chǎn)生的隨機數(shù)

? ? int originArray[4] = {};


? ? //初始化數(shù)組

? ? initArray(originArray);


? ? //打印

? ? show(originArray);


? ? return 0;

}

//初始化數(shù)組

//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){

? ? ? ? ? ? //產(chǎn)生一個隨機數(shù)

? ? ? ? ? ? temp = rand() % 10;


? ? ? ? ? ? //1 2 3

? ? ? ? ? ? //判斷這個數(shù)字在數(shù)組里面是否存在

? ? ? ? ? ? //i表示當(dāng)前數(shù)組里面已經(jīng)存進(jìn)去幾個了

? ? ? ? ? ? for (int j = 0; j < i; j++){

? ? ? ? ? ? ? ? if (array[j] == temp) {

? ? ? ? ? ? ? ? ? ? //存在了

? ? ? ? ? ? ? ? ? ? isExist = true;

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }


? ? ? ? ? ? //什么情況下出來

? ? ? ? ? ? //1.break 2.遍歷完畢還沒找到相同

? ? ? ? ? ? if (isExist == false) {

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? //將這個隨機數(shù)添加到數(shù)組里面

? ? ? ? array[i] = temp;

? ? }

}

//打印數(shù)組內(nèi)容

void show(int array[]){

? ? for ( int i = 0; i < 4; i++) {

? ? ? ? printf("%d ",array[i]);

? ? }

? ? printf("\n");

}

3、/*

參數(shù)人數(shù):7

對每一個人從1開始編號?int

死亡號碼:3

報數(shù)?只要報道3的同學(xué)都死亡?后面的繼續(xù)從1開始報數(shù)

*/

#import?

#define?KILLED?-1

int?main(int?argc,?const?char?*?argv[])?{

int?total?=?0;

int?number[10]?=?{};

int?killNumber?=?0;

int?count?=?0;

int?totalKilledNumber?=?0;

printf("請輸入?yún)⑴c人數(shù):");

scanf("%d",?&total);

//給數(shù)組賦值?編號

for?(int?i?=?0;?i?<?total;?i++)?{

number[i]?=?i+1;

}

printf("請輸入死亡號碼:");

scanf("%d",?&killNumber);

//開始游戲了

for?(int?i?=?0;?i?<?total;?i++)?{

//判斷指向的這個人有沒有被殺掉

if?(number[i]?!=?KILLED){

//報數(shù)

count?=?count?+?1;

}

//判斷當(dāng)前編號是不是到了死亡號碼

if?(count?==?killNumber){

//殺掉這個人

number[i]?=?KILLED;

//還原編號

count?=?0;

//死亡人數(shù)+1

totalKilledNumber?++;

//是不是該結(jié)束了

if?(totalKilledNumber?==?total-1){

break;

}

}

//判斷這一次循環(huán)是不是到末尾了

if?(i?==?total-1){

//讓i回到起始點

i?=?-1;?//防止++?導(dǎo)致回到第二個

}

}

printf("\n");

//測試一次之后的結(jié)果

for?(int?i?=?0;?i?<?total;?i++){

printf("%d?",?number[i]);

}

return?0;

}

三、感悟:

放棄是最簡單的,別看不起自己

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容