#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <stdlib.h>
//int main()(求闰年的代码)
//{
// int year = 0;
// for (year = 1000; year <= 2000; year++)
// {
// if (year % 4 == 0 && year % 100 != 0)
// {
// printf("%d ", year);
// }
// else if (year % 400 == 0)
// {
// printf("%d ", year);
// }
// }
// return 0;
//}
//int main()(求两个数的最大公因数。用的是辗转相除法。)
//{
// int m = 27;
// int n = 18;
// int r = 0;
// printf("请输入您想求的两个数,用空格隔开:\n");
// scanf("%d%d", &m,&n);
//
// while (m%n)
// {
// r = m % n;
// m = n;
// n = r;
// }
// printf("%d\n", n);
// return 0;
//}
//int main()(求两个数的最大公因数。用的是辗转相除法。这个是改进版)
//{
// int m = 27;
// int n = 18;
// int r = 0;
// printf("请输入您想求的两个数,用空格隔开:\n");
// scanf("%d%d", &m,&n);
//
// while (r=m%n)
// {
// //r = m % n;
// m = n;
// n = r;
// }
// printf("%d\n", n);
// return 0;
//}
//int main()//求100以内所有能整除3的数。
//{
// int i = 0;
// for (i = 1; i <= 100; i++)
// {
// if (i % 3 == 0)
// {
// printf("%d\n",i);
// }
// }
// return 0;
//}
//int main()//模拟用户登录场景,只能输入三次密码。
//{
// char password[20] = { 0 };
// int i = 0;
// for (i = 0; i < 3; i++)
// {
// printf("请输入密码:\n");
// scanf("%s", password);
// //if (password == "20031107xuhang")//小知识,等号不能用来判断字符串是否相等。这句代码有问题。
// //应该使用一个库函数--strcmp。
// if (strcmp(password, "20031107xuhang") == 0)
// {
// printf("密码正确\n");
// break;
// }
// else
// {
// printf("密码错误\n");
// }
// }
// if (i ==3)
// printf("输入错误三次,登录失败\n");
// return 0;
//}
//int main()//(自己写的输入密码的代码,有点问题)。
//{
// long password = 20031107;
// int k = 0;
// int i = 0;
// for (i = 1; i <= 3; i++)
// {
// printf("请输入密码:\n");
// scanf("%d/n", &k);
// if (k == password)
// {
// printf("密码正确\n");
// break;
// }
// else
// {
// printf("密码错误,请重新输入");
// }
// }
// if(i==3)
// printf("失败次数超过三次,登录失败/n");
// return 0;
//}
//int main()//演示多个字符从两端移动,向中间汇聚。
//{
// char arr1[] = "what can I say!!!!!!";
// char arr2[] = "--------------------";
// /*int arr1[] = "when can I say";
// int arr2[] = "--------------";*/
// int left = 0;
// int right = sizeof(arr1) / sizeof(arr1[0]) - 2;
// //int right = strlen (arr1)-1;
//
// while (left <= right)
// {
// arr2[left] = arr1[left];
// arr2[right] = arr1[right];
// right--;
// left++;
// printf("%s\n", arr2);
// Sleep(200);
// system("cls");//cls是清空屏幕的指示。
// }
// printf("what can I say!!!!!!");
// return 0;
//}
//小知识:定义一个纯数字数组时,数组最后没有/0,定义一个字符串数组时,结尾一定会有/0。并且两种
//数组类型的定义方式不同,纯数组类型是(记住使用整形关键字比如int之类):arr={。。。。。};而字符串类型
//则是(记住是用字符型关键字变量来定义,如char):arr[]=“。。。。。。。”。
//int main()//(二分查找算法,又叫折半查找算法查找数组某个元素下标,也是下面那个遍历法的改进版本)
//{
// int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
// 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 (k < arr[mid])
// {
// right = mid - 1;
// }
// else if (k > arr[mid])
// {
// left = mid + 1;
// }
// else
// {
// printf("找到了,下标是:%d\n", mid);
// break;
// }
// }
// if (left > right)
// {
// printf("找不到");
// }
//
//}
//int main()//(查找某个有序数组是否存在想找得数,这个是遍历法。)
//{
// int k = 8;
// int i = 0;
// int arr[]= { 1,2,3,4,5,6,7,8,9,10 };
// 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("zhaobudao\n");
// }
// return 0;
//}
//int main()//(这个是求给定n的阶乘和的最笨方法)
//{
// int i = 0;
// int n = 0;
// int sum = 0;
// int ret = 1;
// for (n = 1; n <= 10; n++)
// {
// int ret = 1;
// for (i = 1; i <= n; i++)
// {
// ret = ret * i;
// }
// sum = sum + ret;
// }
// printf("sum=%d\n", sum);
// return 0;
//}
//int main()//(这个是求给定n的阶乘和的改进方法)
//{
// int i = 0;
// int n = 0;
// int sum = 0;
// int ret = 1;
// for (n = 1; n <= 10; n++)
// {
// ret = ret * n;
// sum = sum + ret;
// }
// printf("sum=%d\n", sum);
// return 0;
//}
//int main()(以下两个都是自己打的求n的阶乘的方法)
//{
// 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()
//{
// long i = 0;
// long n = 0;
// scanf("%d", &n);
// long ret = 1;
// for (i = 1; i <= n; i++)
// {
// ret = ret * i;
// }
// printf("ret=%d\n", ret);
// return 0;
//}