基础语句——自定义函数

  上次我们讲了一些常用的功能性函数,上题:

题目描述:
设分段函数f(x)=
x^2+1,x<-5
|x|*x,-5<=x<5
max(x*10,x^2)*x,x>=5
输入n个x的取值,输出对应的函数值。

输入描述:
第一行一个正整数n,表示有n个自变量取值。
第二行有n数,中间用空格隔开。

输出描述:
n行,每行一个整数,表示自变量对应的函数值。

输入样例:
3
-6 -5 9

输出样例:
37
-25
810

其他说明:
所有输入数据均不超过1000。

  今天我们来讲一讲自定义函数。为了使大家更快理解自定义函数的用法,我们来看一看之前将的绝对值函数abs。假设你要自定义一个功能和abs一样的函数,那它大概长这样:

int abs(int x)
{
    if(x>=0)
        return x;
    else
        return -x;
}

  首先,你需要为函数确定一个类型,这个类型就是函数返回值的类型,拿绝对值函数abs举例,假设你用这个函数求的永远是一个整数,那么函数的类型就是int。另外,函数和变量一样需要有一个名字,一般用它的英文名字或简写,也就是绝对值absolute的前三个字母。简单地说,你需要定义一个名叫abs的返回值为整数的函数,因此就需要写“int abs”。括号里的数称为“参数”。假设我是一个绝对值函数,你要我求一个数的绝对值,那你怎么着也得告诉我这个数是什么,这就是参数的作用,也就是告诉你的函数要计算哪个数的绝对值。显然,你只需要给函数一个整数,也就是要求绝对值的那个数,就能通过函数知道他的绝对值。因此我们就有了函数的第一行:int abs(int x)。其中,函数名和参数名都可以随便取,你开心就好。

  接下来,我们就需要函数实现它的功能。功能很简单,如果x>=0,就返回x,否则返回-x。返回值用return语句就可以完成。你可能终于知道int main()中的return 0是干什么用的了,它的用处就是没用好看。这里讲一下三目运算。三目运算的格式是:语句1?语句2:语句3。语句1是一个逻辑运算式,三目运算的意思是:如果语句1为true,就执行语句2,否则执行语句3。因此,上面的绝对值函数也可以写成:

int abs(int x)
{
    return x>=0?x:-x;
}

  简单吧?我们来看一道例题:

题目描述:
输入n个数,输出其中的所有质数,要求排序去重。

输入描述:
第一行一个正整数n,表示有n个数。
第二行有n个正整数,中间用空格隔开。

输出描述:
第一行一个数m,表示有m个不重复的指数。
接下来m行,每行一个质数,由小到大排序。

输入描述:
5
3 10 8 5 3

输出描述:
2
3
5

其他说明:
所有输入数据均不超过1000。

  答案代码如下:

#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
int n,ans[1000],m;
bool prime(int x)
{
    int y=sqrt(x);
    for(int i=2;i<=y;i++)
        if(x%i==0)
            return 0;//0就是false
    return 1;
}
int main()
{
    int a;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a)
        if(prime(a))
            ans[++m]=a;
    }
    sort(ans+1,ans+m+1);
    printf("%d",m);
    for(int i=1;i<m;i++)
        if(ans[i]!=ans[i-1])
            printf("%d\n",ans[i]);
    return 0;
}

  不知道你能不能看懂,但我确定其中所有的关于编程的知识点我都讲到过,看不懂评论区说一声。

  这就是自定义函数的用法了,你学会了吗?

//答案代码
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
int n,a[1000];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)
    {
        if(a[i]<-5)
            printf("%d\n",x*x+1);
        else if(x>=-5&&x<5)
            printf("%d\n",abs(x)*x);
        else
            printf("%d\n",max(x*10,x*x)*x);
    }
    return 0;
}
//以下是用函数的做法
//#include<algorithm>
//#include<cmath>
//#include<cstdio>
//using namespace std;
//int n,a[1000]
//int f(int x)
//{
//    if(x<-5)
//        return x*x+1;
//    else
//        return x>=-5&&x<5?abs(x)*x:max(x*10,x*x)*x;
//}
//int main()
//{
//    scanf("%d",&n);
//    for(int i=1;i<=-n;i++)
//        scanf("%d",&a[i]);
//    for(int i=1;i<=n;i++)
//        printf("%d",f(a[i]));
//    return 0;
//}

Created by RFdragon

原文地址:https://www.cnblogs.com/RFdragon/p/10806695.html

时间: 2024-10-15 16:59:38

基础语句——自定义函数的相关文章

sql的基础语句-单行函数,dual,数字函数,日期函数,表连接,集合运算,分组报表,单行子查询,多行子查询

3. 单行函数 3.1 转换函数 select ascii('A'),chr(65) from dual; select to_char(1243123),1231451 from dual;靠左边的就是字符串,靠右边的就是数字 select to_char(123512a121) from dual;   --错误的写法,没有引号表示数字,但是数字里面包含了字母,不合法的输入值 select to_number('123141211') from dual; select to_number(

Mysql学习笔记(七)mysql编程基础之自定义函数。

delimiter $$ create function fn_liangzifunction() returns int no sql begin set @row_no = @row_no + 1; return @row_no; end; $$ delimiter ; delimiter $$ create function fn_get_name(student_num int) returns char(50) reads sql data begin declare student_

Python基础(二)自定义函数

1.判断字符串,内容是否为数字 我们用python:xlrd读Excel内容时,本来只是输入的整数字,经常读出来的是float类型 我们需要自动转成整型,意思就是说,读出来的和我们输入的一样,但是,我们不能直接用int转换,原因呢,我们无法确定读的每个单元格的值都是数字 那么我们自己,定认一个函数如下: def isNumeric(value): try: tv = float(value) return int(tv) except ValueError: return value 2.获取当

Python基础11- 函数之自定义函数

自定义函数语法结构:def fun1([x],[y],....): 语句1 语句2 使用def语句来定义函数,在def后依次写出函数名.小括号.参数(可无).冒号,然后缩进写函数体 1.无参函数:def test(): print '这是不带参数的函数' test() 2.带参数的函数def test1(x,y): #x,y为形参(提供给使用者的接入) print x * y test1(2,3) #调用时称为实参 3.带参数有返回值的函数def test2(a,b): print a prin

JS基础(五)自定义函数

作用:是为了让重复使用的语句,方便进行调用. 定义格式: function 自定义函数名 (参数1, 参数2,...) { 执行的语句 } 函数的封装:把语句放到函数中去的过程. 参数:通过参数的改变,改变函数的结果. 传参:使用参数调用函数. 在传参的过程中,是有顺序要求的,注意不能把顺序搞乱. 变量的作用域:1.全局变量:在程序中各函数都能够调用. 2.局部变量:只在定义的函数中能够调用.

Oracle基础 自定义函数

一.函数 函数与存储过程相似,也是数据库中存储的已命名PL-SQL程序块.函数的主要特征是它必须有一个返回值.通过return来指定函数的返回类型.在函数的任何地方可以通过return expression语句从函数返回,返回类型必须和声明的返回类型一致. 语法: create [or replace] function function_name [(parameter_list)] return datatype {is/as} [local_declarations] begin exec

PHP基础-自定义函数-变量范围-函数参数传递

一.自定义函数    function 函数名([形式参数1,形式参数2,....形式参数n]){        //各种PHP代码....        //......        return 表达式;//也可以不返回,如果不写那么默认返回null    }        函数的调用:        函数的调用需要遵循定义函数的时候写的规则,一一对应,将具体的实际参数传给定义函数时候写的形式参数!        调用函数之后执行的过程是相对独立的,互补干扰,默认没有联系!        

PHP100-第五讲 PHP5.4 的while / for / break / continue、PHP5.4 的系统函数和自定义函数

PHP5.4 的while / for / break / continue.PHP5.4 的系统函数和自定义函数 论坛交流:http://bbs.php100.com/read-htm-tid-150407.html PHP5.4 的while / for / break / continue 在PHP编写代码时,我们经常需要让相同的代码块运行很多次.这时候就可以在代码中使用循环语句来完成这个任务.PHP的循环结构类似C中模式,有while.do-while.for PHP5.4 的系统函数和

Swift语法基础入门三(函数, 闭包)

Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: func 函数名称(参数名:参数类型, 参数名:参数类型...) -> 函数返回值 { 函数实现部分 } 没有参数没有返回值 可以写为 ->Void 可以写为 ->() 可以省略 Void.它其实是一个空的元组(tuple),没有任何元素,可以写成() func say() -> V