1.猜数字游戏;2.二分法查找;3。简易密码验证程序;4.字符串中大写小写字母互换

//1.猜数字游戏
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int replay(input, num);
void menu()
{
	printf("***********************\n");
	printf("** Open>>1   Over>>0 **\n");
	printf("***********************\n");
}
int playgame(int tmp)
{
	int a = 0;
	while (1)
	{
		printf("Input:>>");
		scanf("%d", &a);
		if (a == tmp)
		{
			printf("********猜对啦!********\n"); 
			break;
		}
		else if (a > tmp)
		{
			printf("********猜大啦!********\n");
		}
		else if (a < tmp)
		{
			printf("********猜小啦!********\n");
		}
	}
	return 0;
}
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		int num = rand() % 100 + 1;
		    menu();
			printf("Input 1/0:>>");
			scanf("%d", &input);
			switch (input)
			{
			case 1:
				printf("游戏开始啦~\n");
				playgame(num);
				break;
			case 0:printf("成功退出!\n"); 
				break;
			default:printf("输入错误\n");
				break;
			}
	} while (input);
		system("pause");
		return 0;
}


//2.二分法查找(有序数组)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int Binary_Search(int a[], int mid, int size)
{
	int low = 0;
	int high = 0;
	int flag = 0;
	scanf("%d", &flag);
	low = 0;
	high = size;
	while (low <= high)
	{
		mid = low + (high - low) / 2;
		if (a[mid] == flag)
		{
			printf("找到了,下标为%d\n", mid);
			break;
		}
		if (a[mid] > flag)
		{
			high = mid - 1;
		}
		else
		{
			low = mid + 1;
		}
	}
	if (high < low)
	{	 
		printf("没找到\n");
		return -1;
	}
	else
		return mid;
}
int main()
{
	int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	int mid = 0;
	int  size = 0;
	size = sizeof(a) / sizeof(a[0]) - 1;
	Binary_Search(a, mid, size); 
	system("pause");
	return 0;
}

//3.简易密码验证,三次机会输入,成功便进入,失败三次退出
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	char a[] = "123456";
	char pwd[10] = { 0 };
	int count = 0;
	printf("请输入密码:>>");
	while (count < 3)
	{
		scanf("%s", pwd);
		if (strcmp(pwd, a) == 0)
		{
			printf("登陆成功!\n");
			system("pause");
			return 0;
		}
		else
		{
			if(count<2) printf("密码输入错误,请重新输入:>>");
			count++;
		}
	}
	printf("登陆失败(已输入三次错误密码)!");
	system("pause");
	return 0;
}

//4.输入字符串,将大写字母改变为小写,小写字母改变为大写,其余字符不变
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	char ch[100] = { 0 };
	int i = 0;
	int len = 0;
	while (1)
	{
		len = sizeof(ch) / sizeof(ch[0]);
		scanf("%s", ch);
		for (i = 0; i < len; i++)
		{
			if (ch[i] >= 65 && ch[i] <= 91)
			{
				ch[i] = ch[i] + 32;
			}
			if (ch[i] >= 97 && ch[i] <= 122)
			{
				ch[i] = ch[i] - 32;
			}
		}
			printf("%s\n", ch);
	}
	system("pause");
	return 0;
}


Java数组是一种用于存储多个相同类型元素的数据结构。它可以存储基本数据类型(如int、float等)或者引用类型(如String、对象等)。数组在内存是连续存储的,通过索引可以访问和修改数组的元素。 二分法是一种高效的查找算法,适用于已排序的数组。它通过将数组分成两部分,然后判断目标元素在哪一部分,从而缩小查找范围。具体步骤如下: 1. 确定数组的起始索引start和结束索引end。 2. 计算间索引mid,即mid = (start + end) / 2。 3. 比较间索引对应的元素与目标元素的大小关系: - 如果间元素等于目标元素,则找到了目标元素,返回间索引。 - 如果间元素大于目标元素,则目标元素在左半部分,更新结束索引为mid - 1。 - 如果间元素小于目标元素,则目标元素在右半部分,更新起始索引为mid + 1。 4. 重复步骤2和步骤3,直到找到目标元素或者起始索引大于结束索引。 对于给定的数组[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],我们可以使用二分法查找第一个1的索引。具体步骤如下: 1. 起始索引start为0,结束索引end为13。 2. 计算间索引mid,即mid = (0 + 13) / 2 = 6。 3. 比较间索引对应的元素与目标元素1的大小关系: - 间元素1等于目标元素1,但我们要找的是第一个1,所以更新结束索引为mid。 4. 重复步骤2和步骤3,直到找到目标元素或者起始索引大于结束索引。 5. 继续二分查找,此时起始索引start为0,结束索引end为6。 6. 计算间索引mid,即mid = (0 + 6) / 2 = 3。 7. 比较间索引对应的元素与目标元素1的大小关系: - 间元素0小于目标元素1,更新起始索引为mid + 1。 8. 继续二分查找,此时起始索引start为4,结束索引end为6。 9. 计算间索引mid,即mid = (4 + 6) / 2 = 5。 10. 比较间索引对应的元素与目标元素1的大小关系: - 间元素1等于目标元素1,但我们要找的是第一个1,所以更新结束索引为mid。 11. 继续二分查找,此时起始索引start为4,结束索引end为5。 12. 计算间索引mid,即mid = (4 + 5) / 2 = 4。 13. 比较间索引对应的元素与目标元素1的大小关系: - 间元素1等于目标元素1,但我们要找的是第一个1,所以更新结束索引为mid。 14. 继续二分查找,此时起始索引start为4,结束索引end为4。 15. 起始索引等于结束索引,查找结束。返回起始索引4。 所以,在给定的数组,使用二分法查找第一个1的索引为4。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值