10函数

题单介绍

本次习题尽量使用函数来简化代码逻辑。 函数是对程序的简化。如果有很多段相同的代码,那么定义一次函数后再调用多次,则会大大减少代码量,降低查错难度。 函数定义的格式如下: ``` 函数返回类型 函数名(参数列表){ 语句; return 返回值; } 若函数不需要返回值,那么返回类型可以定义为void类型,且return直接跟分号即可。 例如: int pow(int x,int y){ int ret=1; for(int i=1;i<=y;i++) ret*=x; return ret; } 在使用一个函数时,只需要函数名和对应的参数即可 比如定义了上面的pow函数后,在程序里使用 pow(2,10) 就可以得到2的10次方的结果。 使用pow(a,b)就可以得到a的b次方的结果 也可以将数组作为参数传入。 定义下面这个参数求出一个数组的最大值 int max(int a[],int n){ int ret=0; for(int i=1;i<=n;i++) if(a[i]>ret) ret=a[i]; return ret; } 在你想求一个数组的最大值时,就可以这么写: int main(){ int b[100],n; //输入n和n个数,省略 printf("%d",max(b,n)); } ``` *按值传递与按引用传递: ``` 在三位数排序的程序里需要多次执行交换两个数的代码,于是想写一个函数来交换两个数,使得代码量减少。 学过上面的知识后可能会这么写: void swap(int x,int y){ int t=x; x=y; y=t; } 然后在主程序里调用swap(a,b); 然后你就会发现这个函数根本不起作用。 这是由于在函数里交换了x和y变量,只会影响到x和y,不会影响到外面的a和b。 若要这个函数起作用,那么需要在定义时这样定义: void swap(int &x,int &y){省略...} 加上&符号后,改变x和y的值,就能改变外面对应的变量。 我们把这种叫做按引用传递。//基本上只有在交换两个数的时候才会用到 大部分情况还是不加&符号,叫做按值传递。 ```

题目列表

  • 【深基7.例1】距离函数
  • 【深基7.例2】质数筛
  • 【深基7.例3】闰年展示
  • 【深基7.例4】歌唱比赛
  • 哥德巴赫猜想