1.猜数字游戏。
电脑所及给一个1到100的数。你可以在其中猜一个数,会提示比你猜的数大还是小。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//菜单
int menu(){
int a;
printf("____________________________\n");
printf("1.开始游戏。\n");
printf("2.退出游戏。\n");
printf("____________________________\n");
printf("请输入你的选项:");
scanf("%d", &a);
return a;
}
//游戏过程
void game(){
int num;
int b = rand() % 100 + 1;
while (1){
printf("请任意输入一个1-100的数:");
scanf("%d", &num);
if (num > b){
printf("你输入的数过大。\n");
}
else if (num < b){
printf("你输入的数过小。\n");
}
else{
printf("你猜对了!\n");
break;
}
}
}
int main(){
srand((unsigned int)time(0));
while (1){
int choice = menu();
if (choice == 1){
game();
}
else if (choice == 2){
printf("欢迎你的下次使用过!\n");
break;
}
else{
printf("输入错误!请重新输入!\n");
}
}
system("pause");
return 0;
}
2.写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 10
//输入要查找的数组
void in(int a[],int n){
printf("请输入一个从小到大整形数组:");
for (int i = 0; i < n; i++){
scanf("%d", &a[i]);
}
}
//折半法查找所要找的数
int BinaryFind(int a[], int size, int to_find){
int left = 0;
int right = size - 1;
while (left<=right)
{
int mid = (left + right) / 2;
if (to_find>a[mid])
{
left = mid + 1;
}
else if (to_find<a[mid])
{
right = mid - 1;
}
else
{
return mid;
break;
}
}
return -1;
}
int main(){
int a[N], n, to_find;
printf("请输入你要查找数组的长度:");
scanf("%d", &n);
in(a, n);
printf("请输入一个你要查找的数:");
scanf("%d", &to_find);
int size = sizeof(a) / sizeof(a[0]);
int i = BinaryFind(a, size, to_find);
if (i == -1){
printf("没找到!\n");
}
else{
printf("找到了,数组下标为:%d\n", i);
}
system("pause");
return 0;
}
3.编写代码模拟三次密码输入的场景。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char str1[100] = { 0 };
char str2 []= "123456";
for (int i = 1; i <= 3; i++){
printf("请输入密码:");
scanf("%s", str1);
int a = strcmp(str1, str2);
if (a == 0){
printf("登陆成功。\n");
break;
}
else{
printf("密码错误,你还有%d次机会。\n", 3 - i);
}
}
system("pause");
return 0;
}
.4.编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。
我用让其输入字符串来实现可以一直输入。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
//将输入的字符串按规则存入如另一字符串
int change(char str1[], int num1, char str2[]){
int j = 0;
for (int i = 0; i < num1; i++){
if (str1[i] >= 'A' && str1[i] <= 'Z'){
str2[j] = str1[i] + 32;
j++;
}
else if (str1[i] >= 'a' && str1[i] <='z'){
str2[j] = str1[i] - 32;
j++;
}
else if (str1[i] >= '0'&& str1[i] <= '9'){
continue;
}
else{
str2[j] = str1[i];
j++;
}
}
return j;
}
int main(){
char str1[N];
char str2[N];
printf("请输入字符串:");
scanf("%s", str1);
int num1 = strlen(str1);
int num2 = change(str1, num1, str2);
printf("按照规则变化的字符串为:");
for (int i = 0; i <= num2; i++){
printf("%c", str2[i]);
}
printf("\n");
system("pause");
return 0;
}