今日份的打卡,四个小程序奉上。
1.猜数字:
系统随机生成一个数字,用户猜数字`
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//生成目录
void menu()
{
printf("*****************************************************\n");
printf("************************1.play***********************\n");
printf("************************0.exit***********************\n");
printf("*****************************************************\n");
}
void game()
{
int num = 0;
int random = rand() % 100 + 1;//生成一个1--100之间的数字
while (1)
{
printf("请输入一个1--100之间的整数:");
scanf("%d", &num);
if (num > random)
{
printf("猜大了,嘻嘻嘻!!!\n");
}
else if (num < random)
{
printf("猜小了,哈哈哈!!!\n");
}
else
{
printf("恭喜你,猜对了哦!!!\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));//生成一个随机种子
do{
menu();//调用目录
printf("请选择:\n");
scanf("%d",&input);
switch (input)
{
case(1) :
{
game();
break;
}
case(0) :
{
break;
}
default:
{
printf("选择错误,请重新输入!");
break;
}
}
} while (input);
system("pause");
return 0;
}
2.调用函数查找数组中的某一个数:
若要查找的数在当前数组中,输出该数字的下标,若不在,输出-1
这个程序中使用了二分法查询数字,需要注意的点是程序中的数组必须是有序数组
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int Search(int arr[], int size, int find)
{
int left = 0;
int right = size - 1;//数组最后一位的下标
while (left <= right)//left和right构成闭区间
{
int mid = 0;
mid = (left + right) / 2;
if (arr[mid] < find)
{
left = mid + 1;
}
else if (arr[mid] > find)
{
right = mid - 1;
}
else
{
printf("%d", mid);//找到了,输出下标
break;
}
}
if (left>right)
printf("-1");//没找到,返回-1
}
int main()
{
int arr[10] = { 1, 3, 4, 5, 9, 12, 28, 34, 36, 47 };//有序数组
int a = 0;
printf("请输入要查找的数:\n");
scanf("%d", &a);
int len = sizeof(arr) / sizeof(arr[0]);
int ret = Search(arr, len, a);
system("pause");
return 0;
}
3.模拟输入密码:
假设密码为123456,用户自己输入,若输入正确,界面显示登录成功
若三次输入都是错误的,就显示登录失败
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
//正确密码为123456
char password[20] = {0};
int i = 0;
for(i = 0; i < 3;i++)
{
printf("请输入密码:\n");
scanf("%s", password);
if (strcmp(password, "123456") == 0)//两个字符串相等返回1
{
break;
}
}
if (i == 3)
{
printf("登录失败!");
}
else
{
printf("登录成功!");
}
system("pause");
return 0;
}
4.转换字母的大小写:
这个相比前面三个,就比较简单了
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
char letter = 0;
printf("请输入一个字母:");
scanf("%c", &letter);
if (letter >= 'A' && letter <= 'Z')
{
letter += 32;
printf("字母转换为:%c", letter);
}
else if (letter >= 'a'&&letter <= 'z')
{
letter -= 32;
printf("字母转换为:%c", letter);
}
else
{
printf("您输入的不是字母!!!");
}
system("pause");
return 0;
}