猜數字小遊戲+折半查詢法(二分法)+三次密碼輸入+字母大小寫轉換
阿新 • • 發佈:2018-11-28
猜數字小遊戲:
#include<stdio.h> #include<time.h> #include<stdlib.h> /* 猜數字小遊戲 */ int menu() { printf("**********1.開始遊戲**********\n"); printf("**********0.結束遊戲**********\n"); printf("\n\n"); int choice = 0; printf("請選擇選單:"); while (1) { scanf("%d", &choice); if (choice == 1) { return 1; } else if (choice == 0) { printf("遊戲結束\n"); return 0; } else { printf("輸入有誤,請重新輸入\n"); } } } void game() { srand((unsigned int)time(0)); int num = rand() % 100 + 1; printf("請輸入你所猜的數字(1 - 100)\n"); while (1) { int guess = 0; scanf("%d", &guess); if (guess > num) { printf("高了\n"); } else if (guess < num) { printf("低了\n"); } else { printf("恭喜你,猜對了\n"); break; } } } int main() { while (menu() == 1) { game(); } return 0; }
折半查詢法(二分法):
#include<stdio.h> /* 用折半查詢發查詢想要的數字 */ int main() { int a[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; int left = 0; int right = sizeof(a) / sizeof(a[0]); printf("請輸入你要找的數字:\n"); int num = 0; scanf("%d", &num); while (left <= right) { int temp = (left + right) / 2; if (num > a[temp]) { left = temp + 1; } else if (num < a[temp]) { right = temp - 1; } else { printf("找到了,在 %d 的位置\n", temp); break; } } if (left > right) { printf("沒找到\n"); } return 0; }
三次密碼輸入:
#include<stdio.h> #include<string.h> /* 輸入密碼,最多給3次機會 */ int main() { char password[1024] = { 0 }; printf("請輸入你的密碼: \n"); int i = 0; for ( ; i < 3; i++) { scanf("%s", &password); if (strcmp(password, "1234aa..") == 0) { printf("密碼正確,登陸成功\n"); break; } printf("密碼錯誤,請重新輸入\n"); } if (i == 3) { printf("登陸失敗\n"); } return 0; }
字母大小寫轉換:
(數字及其他字元不能轉換)
#include<stdio.h>
/*
字母的大小寫轉換
*/
int menu() {
printf("**********1. 轉換 **********\n");
printf("**********0.結束轉換**********\n");
int choice = 0;
while (1) {
scanf("%d", &choice);
if (choice == 1) {
return 1;
} else if (choice == 0) {
return 0;
} else {
printf("輸入有誤,請重新輸入\n");
}
}
}
void exchange() {
printf("請輸入你要轉換大小寫的字母\n");
char c;
while ((c = getchar()) != '\n');
c = getchar();
if (c >= 'a' && c <= 'z') {
printf("%c\n", c - 32);
} else if (c >= 'A' && c <= 'Z') {
printf("%c\n", c + 32);
} else {
printf("不存在大小寫轉換\n");
}
while ((c = getchar()) != '\n');
}
int main() {
char c = 0;
while (menu() == 1) {
exchange();
}
return 0;
}