问题标题: 浅谈函数

0
1
已解决
李致远
李致远
高级光能
高级光能

不知道有没有同学还莫有学到函数,今天我来讲讲函数。

一 函数的好处

    1 使得代码更加整洁

    2 使得代码思路清晰,容易检查

    ………………

二 函数的定义

数据类型 函数名(数据类型 参数名称){//注意 若有多个参数,依然按照此格式,如:int a,int b;不能写成int a,b;!!!

    ……;

    return 0/1/ ;//若数据类型为void,则可以在函数内直接输出,不允许有返回值。(‘ ’);

}

eg:

int is(int a){
    return a*13;
}//最简单的函数

三 函数的调用

1 数据类型!=void

若要输出,则cout<<函数名(参数);

若要判断,则直接if(函数名(参数)...)

2 数据类型==void 

若要输出,则直接 函数名(参数);//前提是你在函数内输出了

若要判断,则直接if(函数名(参数)...)

四 实战

例题1 判断质数

在没学过函数之前的代码:

(严禁抄袭)

#include<iostream>

using namespace std;

int main(){

    int n;

    cin>>n;

    if(n==1){

        cout<<"No";

        return 0;

    }

    for(int i=2;i<=n;i++){

        if(n%i==0){

            cout<<"No";

            return 0;

        }

    }

    cout<<"Yes";

    return 0;

}

学过之后:

#include<iostream>

using namespace std;

void is__prime(int n){

    if(n==1){

        cout<<"No";

        return ;

    }

    for(int i=2;i<=n;i++){

        if(n%i==0){

            cout<<"No";

            return ;

        }

    }

    cout<<"Yes";

    return ;
}

int main(){

    int n;

    cin>>n;

    is__prime(n);

    return 0;

}

是不是觉得代码高大上了很多嘞(整洁)?

五 高级(拓展)

1 struct//结构体

格式:

struct 结构体名{

    数据类型 变量名;

}数组名[];//分号千万别忘了

调用

for(int i=1;i<=n;i++)cin>>数组名[i].参数;

eg:

struct ex{

    int id;

}s[10010];

int main();

int n;

cin>>n;

for(int i=1;i<=n;i++)cin>>s[i].id;

排序

bool 函数名(结构体名 自定义变量,结构体名 自定义变量){

    return ...;

}

sort(数组名+1,数组名+1+n,函数名);

eg;

for(int i=1;i<=n;i++)cin>>数组名[i].参数;

eg:

struct ex{

    int id;

}s[10010];
bool cmp(ex x,ex y){

    return x.id<y.id;

}

int main();

int n;

cin>>n;

for(int i=1;i<=n;i++)cin>>s[i].id;

sort(s+1,s+1+n,cmp);

2 class

至于class,有点难讲。。。

给个代码,大家自己体会(注 代码为本蒟蒻原创!)

#include<bits/stdc++.h>
#include<Windows.h>
using namespace std;
int cnt;
class pub {
	public :
    int codeour;
    int day;
    
 	//private:
    void set(int x, int y); 
 
    void out();

};
void pub::set(int x, int y) 
 
{
 
    day = x;
 
    codeour = y;
 
}
void pub::out()

    {

        day = 1 + rand() % 50;
        codeour = 1 + rand() % 23;
        cnt += day;
        cout << "第" << cnt << "天,我打了" << codeour << "小时代码!!!\n";
        Sleep(200);

    }
int main() {
    int cnt = 0;
	pub sub;
    for(int i = 1; i <= 100; i++) {
		sub.set(0,0);
		//sub.codeour(0);
		sub.out(); 
    }

    return 0;
}

 

李致远在2020-08-29 16:08:46追加了内容


0
已采纳
丁博扬
丁博扬
中级天翼
中级天翼

哦,谢谢

我刚学到函数

我函数特别是排序就是不会

我只会弄一个自定义函数

还有你那个ac零分的是哪题,我也看看

2
0
赵逸凡
赵逸凡
初级启示者
初级启示者

已经有小王课堂了,难不成接下来还有小李课堂。。。。

一些关键的知识点建议不要发帖子,老师上课会讲的,王子健讲的大部分都是上课时没讲过的课外知识

我要回答