猜數字遊戲,折半查找,密碼登錄

1.猜數字遊戲(C語言版)

1.問題分析:
首先要有一個與用戶交互的菜單,其次生成一個隨機數讓用戶來猜,然後通過用戶輸入的數字給出提示,是猜高了還是猜低了,最後用戶猜對了,程序結束.

2.代碼:

//菜單函數
int Menu(){
	printf("===============\n");
	printf("1.開始遊戲\n");
	printf("0.遊戲結束\n");
	printf("===============\n");
	printf("請輸入你的選擇:");
	int choice = 0;
	scanf("%d",&choice);
	return choice;
}
//遊戲函數
void Game() {
	//進行一局遊戲
	//1.系統隨機生成一個隨機數(1-100)
	int toGauss = rand() % 100 + 1;
	//2.再次讓用戶輸入要猜的數字
	while (1) {
	printf("請輸入一個數字(1-100):");
	int num = 0;
	scanf("%d", &num);
	//3.系統比較用戶輸入和系統的隨機數的大小關係並給出提示
		if (num < toGauss) {
			printf("低了!\n");
		}
		else if (num > toGauss) {
			printf("高了!\n");
		}
		else {
			printf("恭喜你猜對了!\n");
			break;
		}
	}
}

int main() {
	int t = time(0);
	srand(t);
	//需要一個和用戶交互的菜單
	while (1) {
		int choice = Menu();
		if (choice == 1) {
			//每次調用Game函數開始一局遊戲
			Game();
		}
		else if (choice == 0) {
			//結束遊戲
			printf("goodbye!\n");
			break;
		}
		else {
			printf("您的輸入有誤!請重新輸入!\n");
		}
	}
	return 0;
}

3.運行截圖:
在這裏插入圖片描述

2.折半查找

1.問題分析:
首先折半查找的前提是在一個有序的數組中進行查找,升序,降序都可以,其次確定待查找的數字,和數組的長度,然後每次查找都是查找當前數組中間的數字進行計較,判斷待查找數字的當前數字的左邊還是右邊,確定哪邊後,繼續用待查找數字與該邊數值的中間數字進行比較,循環執行該操作,最後如果找到該數字就返回下標,沒找到返回-1.

2.代碼:

//用函數實現折半查找
int BinarySearch(int arr[],int size, int toFind) {
	int left = 0;
	int right = size - 1; //確定最右邊數字的下標
	while (left<=right) {
		int mid = (left + right) / 2;
		if (toFind<arr[mid]) {
			right = mid - 1;    //折半 待查找數字在左邊
		}
		else if (toFind > arr[mid]) {
			left = mid + 1;     //折半 待查找數字在右邊
		}
		else {
			return mid; //找到了
		}
	}
	return -1; //沒找到
}

int main() {
	int arr[4] = { 2,5,7,9,};
	int result = BinarySearch(arr,4,7);  //4爲數組長度,7爲待查找數字
	printf("result=%d\n",result);
	return 0;
}

在這裏插入圖片描述

3.密碼登錄

1.問題分析:
首先設定正確密碼,其次確定登錄次數,然後給輸入一次給出提示,最後若登錄次數用完且密碼都是錯誤及登陸失敗,在次數內密碼輸入正確及登陸成功
2.代碼:

int main() {
	int i;
	for (i = 0; i < 3;i++) {
		char password[10] = { 0 };
		printf("請輸入密碼:\n");
		scanf("%s", password);
		if (strcmp(password, "888888")==0) {
			printf("登陸成功\n");
			break;
		}else{
			printf("密碼錯誤,請重試!\n");
		}
	}
	if (i==3) {
		printf("登陸失敗\n");
	}
}

運行截圖:
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章