#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//复习函数的交换 实参与形参
//对形参的修改不能改变实参,要通过指针 地址的意义
//Swap(int* px, int* py)//形参
//{
// int z = 0;
// z = * px; //z=a
// *px = *py;//a=b
// *py = z;//b=z
//}
//
//int Add(int x, int y)
//{
// return x + y;
//}
//
//int main()
//{
// int a = 0;
// int b = 0;
// scanf("%d %d", &a, &b);
//
// int c = Add(a, b);//实参可以是常量,变量,表达式,函数,无论实参是何种类型,在进行调用时,他们都必须有确定的值,以便这些值传送给形参
// //int c = Add(Add(a, 3), b);
// //int = Add(a + 3, b);
//
// printf("%d\n", c);
// printf("交换前:a=%d b=%d\n", a, b);
//
// //实参
// Swap(&a, &b);//什么时候要传地址,当需要改变 a或b的值就要传地址
// //只需要传值过去的,不改变值的,不用传地址
// printf("交换后:a=%d b=%d\n", a, b);
// return 0;
//}
//练习
//写一个函数判断一个属是不是素数
//打印100-200之间的素数
//7
//1和7整除 能整除不是素数
//2 3 4 5 6
//#include<math.h>
//int main()
//{
// int count = 0;
// int i = 0;
// for (i = 101; i <= 200; i+=2)//优化 直接从101开始,排除偶数,偶数不可能是奇数,后面i++改成i+=2
// {
// //判断i是否素数
// //是素数就打印
// //拿2到 i-1之间的数字去试除i
// int flag = 1;//flag是1,表示是速速
//
// int j = 0;
// for (j = 2; j <=sqrt(i); j++)//平方优化
// {
// if (i % j == 0) //能整除
// {
// flag = 0; //不是素数
// break; //返回重新
// }
// }
// if (flag == 1)
// {
// count++;
// printf("%d ", i);
// }
// }
// printf("\ncount=%d\n",count);
//
// return 0;
//}
//函数版
//#include<math.h>
//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 count = 0;
// int i = 0;
// for (i = 101; i <= 200; i += 2)//优化 直接从101开始,排除偶数,偶数不可能是奇数,后面i++改成i+=2
// {
// //判断i是否素数
// //是素数就打印
// //拿2到 i-1之间的数字去试除i
// if (is_prime(i))
// {
// printf("%d ", i);
// count++;
// }
// }
// printf("\ncount = %d\n",count);
//
// return 0;
//}