[关闭]
@SuHongjun 2020-04-20T00:31:05.000000Z 字数 1281 阅读 480

C语言-Day 13:函数--1

C语言 2020春季学期


知识点:

函数定义及调用--例1:

  1. //函数定义
  2. int f() //函数头:int 是函数的返回值类型,f是函数名,()内部的内容是形参列表,此处为空
  3. { //函数体
  4. }
  5. main()
  6. {
  7. f(); //函数调用
  8. }

函数定义及调用--例2:

  1. #include "stdio.h"
  2. //函数定义
  3. int f(int x, int y) //函数头:int:函数的返回类型, f:函数名, ()内是参数列表,x,y是形参
  4. { //函数体
  5. return x+y; //返回值
  6. }
  7. main()
  8. {
  9. int a;
  10. a = f(2,3); //函数调用:2,3称为实参
  11. printf("%d\n", a);
  12. }

新套路1(采用了用户自定义函数之后的编程套路1)

  1. #include "stdio.h"
  2. //函数定义
  3. /*
  4. 这里就是你的用户自定义函数的代码
  5. */
  6. main()
  7. {
  8. //变量定义
  9. //提示及输入
  10. //计算、输出(其间以某种形式直接或者间接调用 用户自定义函数)
  11. }

新套路1的例子:

例1:
输出0--5000年内所有的闰年

  1. #include "stdio.h"
  2. int IsRunNian(int year)
  3. {
  4. if((year%400==0) || (year%4==0 && year%100!=0))
  5. return 1;
  6. else
  7. return 0;
  8. }
  9. main()
  10. {
  11. int y;
  12. for(y=0; y<=5000; y++)
  13. {
  14. if(IsRunNian(y)) //if(IsRunNian(y) == 1)
  15. printf("%d\t", y);
  16. }
  17. }

例1的另一种实现方式:(规则之下,编程有相当的灵活性)

  1. #include "stdio.h"
  2. void ShuChuRunNian(int start,int end)
  3. {
  4. int i;
  5. for(i=start; i<=end; i++)
  6. if(i%400 == 0 || i%4 == 0 && i%100 != 0)
  7. printf("%5d",i);
  8. }
  9. main()
  10. {
  11. ShuChuRunNian(0,5000);
  12. }

例2:
输出20000以内的所有质数

  1. #include "stdio.h"
  2. int IsPrime(int n)
  3. {
  4. int IsZhiShu,i;
  5. IsZhiShu = 1;
  6. for(i=2; i<n; i++)
  7. {
  8. if(n % i == 0)
  9. {
  10. IsZhiShu = 0;
  11. return IsZhiShu;
  12. }
  13. }
  14. return IsZhiShu;
  15. }
  16. main()
  17. {
  18. int x;
  19. for(x=2; x<=20000; x++)
  20. if(IsPrime(x)) //if(IsPrime(x) == 1)
  21. printf("%-6d",x);
  22. }

例2的第二种实现方式:

  1. #include "stdio.h"
  2. void OutPutZS(int begin, int end)
  3. {
  4. int n,i,ZS;
  5. for(n=begin; n<=end; n++)
  6. {
  7. ZS =1;
  8. for(i=2; i<n; i++)
  9. {
  10. if(n%i == 0)
  11. {
  12. ZS = 0;
  13. break;
  14. }
  15. }
  16. if(ZS) //if( ZS == 1)
  17. printf("%d\t", n);
  18. }
  19. printf("\n");
  20. }
  21. main()
  22. {
  23. OutPutZS(2,20000);
  24. }

函数背后的思想:
模块化:不要重复造轮子

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注