0
已解决
李致远
高级光能
高级光能
不知道有没有同学还莫有学到函数,今天我来讲讲函数。
一 函数的好处
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追加了内容