猜字游戏,折半查找,模拟三次密码输入的场景,编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。
1.完成猜数字游戏。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{printf("============\n");printf("1.开始游戏\n");printf("2.退出游戏\n");printf("============\n");
}
void game()
{int goal;int num = 0;goal= rand()%100+1; while (1){printf("请输入您猜想的数字(1-100):\n");scanf("%d", &num);if (num > goal){printf("big\n");}else if(num<goal){printf("small\n");}else {printf("You win!\n");break;}}printf("正确数字为:%d\n", goal);
}
int main()
{int choose = 0;srand((unsigned int)time(NULL));do{menu();printf("请输入您的选择:");scanf("%d", &choose);if (choose == 1){game();break;}else if (choose == 2){break;}else{printf("您的输入非法,请重新输入!\n");}} while (choose);system("pause");return 0;
}
2.写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int search(int num, int arr[], int sz)
{int left = 0;int right = sz;while (left <= right){int mid = (left + right) / 2;if (arr[mid] == num){return mid;}else if (arr[mid] > num){right = mid - 1;}else{left = mid + 1;}}if (left > right)return -1;
}
int main()
{int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };for (int i = 9; i >= 0; --i){arr[i] = i;}int num = 0;int ret = 0;int sz = sizeof(arr) / sizeof(arr[0]) - 1;printf("请输入您想要查找的数字:");scanf("%d", &num);ret = search(num, arr, sz);if (ret == -1)printf("找不到\n");elseprintf("找到了,下标是%d\n", ret);system("pause");return 0;
}
3.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{char password[] = "123456";char input[10] = "0";int i = 0;for (i = 0; i < 3; ++i){printf("请输入密码:");scanf("%s", &input);if (0 == strcmp(password, input)){printf("登录成功!\n");break;}else{printf("输入错误,请重新输入\n");}if (i == 2)printf("退出程序\n");}system("pause");return 0;
}
4.编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{int input = 0;while ((input = getchar()) != EOF){if ('a' <= input && input <= 'z')putchar(input - 32);printf("\n");if ('A' <= input && input <= 'Z')putchar(input + 32);printf("\n");}system("pause");return 0;
}}
猜字游戏,折半查找,模拟三次密码输入的场景,编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。
1.完成猜数字游戏。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{printf("============\n");printf("1.开始游戏\n");printf("2.退出游戏\n");printf("============\n");
}
void game()
{int goal;int num = 0;goal= rand()%100+1; while (1){printf("请输入您猜想的数字(1-100):\n");scanf("%d", &num);if (num > goal){printf("big\n");}else if(num<goal){printf("small\n");}else {printf("You win!\n");break;}}printf("正确数字为:%d\n", goal);
}
int main()
{int choose = 0;srand((unsigned int)time(NULL));do{menu();printf("请输入您的选择:");scanf("%d", &choose);if (choose == 1){game();break;}else if (choose == 2){break;}else{printf("您的输入非法,请重新输入!\n");}} while (choose);system("pause");return 0;
}
2.写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int search(int num, int arr[], int sz)
{int left = 0;int right = sz;while (left <= right){int mid = (left + right) / 2;if (arr[mid] == num){return mid;}else if (arr[mid] > num){right = mid - 1;}else{left = mid + 1;}}if (left > right)return -1;
}
int main()
{int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };for (int i = 9; i >= 0; --i){arr[i] = i;}int num = 0;int ret = 0;int sz = sizeof(arr) / sizeof(arr[0]) - 1;printf("请输入您想要查找的数字:");scanf("%d", &num);ret = search(num, arr, sz);if (ret == -1)printf("找不到\n");elseprintf("找到了,下标是%d\n", ret);system("pause");return 0;
}
3.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{char password[] = "123456";char input[10] = "0";int i = 0;for (i = 0; i < 3; ++i){printf("请输入密码:");scanf("%s", &input);if (0 == strcmp(password, input)){printf("登录成功!\n");break;}else{printf("输入错误,请重新输入\n");}if (i == 2)printf("退出程序\n");}system("pause");return 0;
}
4.编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{int input = 0;while ((input = getchar()) != EOF){if ('a' <= input && input <= 'z')putchar(input - 32);printf("\n");if ('A' <= input && input <= 'Z')putchar(input + 32);printf("\n");}system("pause");return 0;
}}