#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
//strcpy函数
//int main()
//{
// char arr1[20] = { 0 };
// char arr2[] = "hello";
//
// strcpy(arr1, arr2);
// printf("%s\n", arr1);
// return 0;
//}
//函数组成:
//ret_type fun_name(para1, *)
//{
// statement;//函数体 语句项
//}
//ret_type: 返回类型 fun_name:函数名字 para1:函数参数
//举例
//选出两个整数最大值
//int get_max(int x,int y)
//{
// return(x > y ? x : y);
//}
//int main()
//{
// int a = 0;
// int b = 0;
// scanf("%d %d", &a, &b);
// //求最大值
// int m = get_max(a, b);
// printf("%d\n", m);
// return 0;
//}
//交换两个整型变量的内容
//void swap(int x, int y)
//{
// int c = 0;
// c = x;
// x = y;
// y = c;
//}
//
ab叫实参 xy为形式参数 实参传递给形参的时候,形参是实参的一份临时拷贝
对形参的修改不会影响实参
//int main()
//{
// int a = 0;
// int b = 0;
// scanf("%d %d", &a, &b);
// //交换
// printf("交换前:a=%d b=%d\n",a,b);
// swap(a, b);
// printf("交换后:a=%d b=%d\n",a,b); //此时运行代码输入参数 结果没交换
// //因为只是值换了 x y有单独对应的地址
// return 0; //只是把xy换了 ab没影响
//}
//int main()
//{
// int a = 10;
// int* p = &a;
// //此时修改a有:
// a = 20;//直接改
// *p = 30;//间接改
// return 0;
//}
//修改:
//void swap(int *px, int *py)
//{ //此时*px存的a地址 *py存的y的地址
// int c = *px;//把a的值放到了c里
// *px = *py;//把a=b
// *py = c;//b=c
//}
//int main()
//{
// int a = 0;
// int b = 0;
// scanf("%d %d", &a, &b);
// //交换
// printf("交换前:a=%d b=%d\n",a,b);
// //swap(a, b);换成:
// swap(&a, &b);
// printf("交换后:a=%d b=%d\n",a,b);
// return 0;
//}
//打印100-200之间的素数
#include<math.h>
//int main()
//{
// int i = 0;
// for (i = 100; i <= 200; i++)
// {
// //判断:拿2~i-1之间的数去试除i
// int A = 1;//默认A=1:表示是素数
// int j = 0;
// for (j = 2; j <= i-1; j++)
// {
// if (i % j == 0)
// {
// A = 0;
// break;
// }
// }
// if (A == 1)
// {
// printf("%d ", i);
// }
// }
// return 0;
//}
///优化:
//int main()
//{
// int i = 0;
// for (i = 101; i <= 200; i+=2)//偶数都不是素数 所以可以从101开始 每次+2
// {
// //判断:拿2~i-1之间的数去试除i
// int A = 1;//默认A=1:表示是素数
// int j = 0;
// for (j = 2; j <= sqrt(i); j++) //sqrt(i):对i开根号 如果一个数m=a*b
// { //例如:16=2*8=4*4
// if (i % j == 0) //a和b一定有一个数字<=sqrt(m)
// { //所以这里可以改为:j<=sqrt(i) 只需找到因子里边的小值就可以
// A = 0;
// break;
// }
// }
// if (A == 1)
// {
// printf("%d ", i);
// }
// }
// return 0;
//}
//判断一个数是否为素数
//是素数返回1 不是返回0
//int is_prime(int n)
//{
// int j = 0;
// for (j = 2; j <= sqrt(n); j++)
// {
// if (n % j == 0)
// {
// return 0;
// }
// }
// return 1;
//}
//int main()
//{
// int i = 0;
// for (i = 100; i <= 200; i++)
// {
// if(is_prime(i))
// printf("%d ", i);
//
// }
// return 0;
//}
/bool类型:用来表示真假的变量
//例子:打印100-200素数
#include<stdbool.h>
//bool is_prime(int n)
//{
// int j = 0;
// for (j = 2; j <= sqrt(n); j++)
// {
// if (n % j == 0)
// {
// return false;
// }
// }
// return true; ///bool类型用的时候通常返回为true或false bool也可以返回0和1
//}
//int main()
//{
// int i = 0;
// for (i = 100; i <= 200; i++)
// {
// if (is_prime(i))
// {
// printf("%d ", i);
// }
// }
// return 0;
//}
//写一个函数,每调用一次函数,就会将num值+1
//void Add(int* p)
//{
// (*p)++;
//}
//int main()
//{
// int num = 0;
// Add(&num);
// printf("%d\n", num);
// Add(&num);
// printf("%d\n", num);//用于验证是否+1
// return 0;
//}