函数的应用

来源:互联网 发布:终极算法 mobi 百度云 编辑:程序博客网 时间:2024/05/26 19:19
#include <stdio.h>
//函数的声明
int getSumm(int a,int b);
//有返回值有参数类型
int getMax(int x,int y,int z){
    int max=x;
    if (max<y) {
        max=y;
    }if (max<z) {
        max=z;
    }
    return max;
}
//无返回值无参数类型
void print(){
    printf("我是无返回值无参数类型\n");
}
//有返回值无参数类型
int getSum()
{
    int sum=0;
    for (int i=1; i<=100; i++) {
        sum+=i;
    }
    return sum;
}
//无返回值有参数类型
void printChar(char alphabet)
{
    printf("alphabet=%c\n",alphabet);
}
//形参实参例子
void changValue(int x)
{
    printf("x 改变之前的值%d\n",x);
    x=999;
    printf("x 改变之后的值%d\n",x);
}
//函数的迭代
long factorial(int x);
//函数的递归
long factorialSecond(int x);
int main(int argc, const char * argv[]) {
    
    /*
     函数 将一些功能代码隐藏起来,给外部提供接口,我们需要知道函数可以干什么就可以了
     使用函数可以实现代码的重用
     */
    /*
     C语言函数的定义:
     语法:
         返回值的类型 函数名(参数类型 参数名1,参数类型 参数名2,...)
     {
      实现函数的代码
      reruen 返回值;
     }
     */
     //有返回值有参数类型
    printf("三个数的最大值为:%d\n",getMax(55, 66, 445));
     //无返回值无参数类型
    print();
     //有返回值无参数类型
    int getSumNumber=getSum();
    printf("getSumNumber=%d\n",getSumNumber);
     //无返回值有参数类型
    printChar('a');
    /*
     每个函数都有返回值类型,即类型标识符
     void类型表示此函数返回值类型为空
     参数列表可以为空
     如果一个函数没有参数,它依然要写()
     */
    /*
     函数的声明
        函数的声明与函数头一样,以分号结束
     */
    int theSum=getSumm(2, 3);
    printf("theSum=%d\n",theSum);
    /*
     函数的调用
       语法
          方法名(实参列表)
     */
    /*
     形参(形式参数),在定义函数的时候使用,并且在整个函数内部可以使用,出了函数之后不能使用
     形参:变量、数组
     实参(实际参数),在调用函数时使用,通过实际参数,将数据传递给形式参数,然后再经由形式参数传递给函数
     实参:同类型的常量、变量、数组元素、表达式、数组
     
     */
    int x=10;
    changValue(x);
    printf("x=%d\n",x);
    /*
     注意:
     1.形参和实参再数量、类型、顺序上应该要严格一致,否则会发生类型不匹配的错误
     2.在函数中对形参做出改变,那么在函数执行完毕后,实参的值是不会发生改变的,因为函数内部所操作的都是实参的副本。
     */
    /*
     变量的作用域 全局变量 局部变量
     全部变量:定义在我们函数外部的变量称为全部变量,任何函数都可以使用
     局部变量:定义在我们函数里面的变量成为局部变量
     auto static ...
     对于auto类型的局部变量出了函数以后不能使用
     对于static类型的局部变量,能够在程序运行期间一直能保持其最后一次被改变的值
     
     */
    for (int i=0; i<10; i++) {
        test();
    }
    /*
     函数的分类
     1、库函数 printf scanf
     2、数学库函数 #include<math.h>
     3、自定义函数:用户在程序中需要而编写的函数
     */
    //函数的嵌套调用
   int value = getMax(4, 5, getSumm(2, 3));
    printf("value=%d\n",value);
    /*
     C程序源代码格式的一般情况如下:
      预编译语句
      宏定义常量
      函数的声明放在这里
      main函数
      函数的实现放这里
     */
    printf("请输入一个整数");
   int i;
  scanf("%d",&i);
  printf("%d!=%ld\n",i,factorial(i));
  printf("%d!=%ld\n",i,factorialSecond(i));
     return 0;
}
int getSumm(int a,int b)
{
    //函数的实现
    int sum=a+b;
    return sum;
}
long factorial(int x){
    //函数的实现
    long sum=1;
    for (int i=1; i<=x; i++) {
        sum*=i;
    }
    return sum;
0 0