#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;

//}