#include<stdio.h>
#include<string.h>//因为引用了strlen,scanf,strcmy函数
#include<windows.h>//因为引用了sleep函数
#include<stdlib.h>//因为引用了 system
int main()
{
	int i = 0;
	char password[20] = { 0 };
	for (i = 1; i <= 3; i++)
	{
		printf("请输入密码\n");
		scanf("%s", &password);
		if (strcmp(password,"123456")==0)//双等号不能判断两个字符串是否相等,应该用库函数strcmp
		{
			printf("登陆成功\n");
			break;
		}
		else
		{
			printf("密码输入错误\n");
		}
	}
	if (4 == i)
	{
		printf("输入密码错误次数达到3次,退出程序\n");
	}
	return 0;
}
//int main()
//{
//	char arr1[] = {"Welcome to bit!!!!!!"};//后面还有一个隐形‘/0‘
//	char arr2[] = {"####################"};
//	int left = 0;
//	//int right = sizeof(arr1) / sizeof(arr1[0]-2);//0和 ‘0‘所以减2
//	int right = strlen(arr1) - 1;
//	while (right>=left)
//	{
//
//		arr2[left] = arr1[left];
//		left++;
//		arr2[right] = arr1[right];
//		right--;
//		printf("%s\n", arr2);
//		Sleep (1000);//单位毫秒
//		system("cls");
//	}
//	printf("%s\n", arr2);
//		return 0;
//}
//int main()
//{
//	int  arr[] = {1,2,3,4,5,6,7,8,9,10};
//	int k = 11;
//	//int k = 7;
//	int sz = sizeof(arr)/sizeof(arr[0]);
//	int left = 0;//左下标
//	int right = sz - 1;//右下标
//	while (left<=right)
//	{
//		int mid = (left + right) / 2;//二分查找法
//		if (arr[mid] > k)
//		{
//			right = mid - 1;
//		}
//		else if (arr[mid] < k)
//		{
//			left = mid + 1;
//		}
//		else
//		{
//			printf("找到了,下标是:%d\n", mid);
//			break;
//		}
//	}
//	if (left>right)
//	{
//		printf("找不到\n");
//	}
//	return 0;
//}
//int main()
//{
//	int arr[] = {1,2,3,4,5,6,7,8,9,10};
//	int k = 7;
//	int i = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	for (i = 0; i < sz; i++)
//	{
//		if (k == arr[i])
//		{
//			printf("找到了,下标是%d\n", i);
//			break;
//		}
//	}
//	if (i == sz)
//		printf("找不到\n");
//	return 0;
//}
//int main()
//{
//	int n = 0;
//	int ret = 1;
//	int sum = 0;
//	for (n = 1; n <= 3; n++)
//	{
//	    ret = ret*n;
//		sum = sum + ret;
//
//	}
//	printf("sum=%d\n", sum);
//	return 0;
//}
////int main()
//{
//	int i = 0;
//	int n = 0;
//	int ret = 1;
//	int sum = 0;
//	for (n = 1; n <= 3; n++)
//	{
//		ret = 1;
//		for (i = 1; i <= n; i++)
//		{
//			
//			ret = ret*i;
//		}
//		sum = sum + ret;
//	
//	}
//	printf("sum=%d\n", sum);
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	int n=0; 
//	int ret = 1;
//	scanf("%d", &n);
//	for (i=1; i<=n;i++)
//	{
//		ret = ret*i;	
//	}
//	printf("ret=%d\n", ret);
//	return 0;
//}
//int main()
//{
//	int i = 1;
//	do
//	{
//		if (5 == i)
//			continue;
//break;
//		printf("%d\n", i);
//		i++;
//	} 
//	while (i <= 10);// do  whlie 上来就是干,至少循环一次
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	int k = 0;
//	for (i = 0, k = 0; k = 0; i++, k++)//k=0 赋值,0为假,所以不进入循环
//		k++;
/*int x, y;
for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
{
printf("hehe\n");
}*/
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	int j = 0;
//	for (; i < 10; i++)
//	{
//		for (; j < 10; j++)//这里省略了初始化条件j=0
//		{
//			printf("hehe\n");//由于循环后j=10没有被销毁,现在只能输出10个hehe,原本输出100个
//		}
//	}
//	return 0;
//}
//int main()
//{
//	int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//	int i = 0;
//	for (i = 0; i < 10; i++)//不要随便省略判断条件,会进入死循环
//	{
//		printf("%d\n", arr[i]);
//	}
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		if (5 == i)
//			continue;//不会像while一样死循环
//			//break;
//		printf("%d\n",i);//1~4 && 6~10
//	}
//	return 0;
//}
//int main()
//{
//	int ch = 0;
//	while ((ch = getchar()) != EOF)
//	{
//		if (ch<‘0‘ || ch>‘9‘)
//			continue;
//		putchar(ch);//打印0 ~ 9
//	}
//	return 0;
//}
//int main()
//{
//	int ret = 0;
//	int ch = 0;
//	char password[20] = { 0 };
//	printf("请输入密码:>");//123456 abcd
//	scanf("%s",password);//数组不用取地址符
//缓冲区还剩一个 \n
//读取一下\n
//	while((ch=getchar())!=‘\n‘);
//	printf("请确认(Y/N):>");
//	ret = getchar();// Y / N
//	if (‘Y‘==ret)
//	{
//		printf("确认成功\n");
//	}
//	else
//	{
//		printf("确认失败\n");
//    }
//	return 0;
//}
原文:https://www.cnblogs.com/liwenqiang123/p/15028235.html