精华 发表在 名为C++的传说 09-15 22:00:46
yo~我又回来啦~
今天的课程我们来讲一讲“函数”这个概念。这一部分说难也不难,说简单却又有很多人卡在这里很久。那么今天我就给大家细细讲解一下关于函数的知识。
首先要恭喜大家,咱们终于从小学毕业,走进了初高中的时代。在C++中的函数与我们在学习中遇到的函数有异曲同工之妙,但是却并非完全相同。如果你是高中生的话,那么相信你对于f(x)这个表达式一定有所了解。它的意思是“x”这个自变量在运算法则“f”下所表示的所有数。也就是x的函数。
举个例子:f(x)=x+3。那么当我们令自变量为“x+12”时。这个式子就变成了:f(x+12)=(x+12)+3。我们也就可以看出此时的运算法则“f”的含义就是令自变量的值加上三。
而C++中的函数与这个很是相似,程序员需要自己定义函数,也就是所谓的运算法则。然后程序员便能在此程序中调用所定义的函数来更方便的完成工作。一个高级的函数可以帮助你在编程过程中省去很多麻烦,同时也避免了多次书写代码时所出现的失误。C++也内置了很多的函数。我们之前在所有程序开头写下的:
#include<iostream>
便是在C++中打开一个包含了一些函数的“库”。此头文件意为“标准输入输出库”,我们所熟悉的“cout”与“cin”便是包含在这个库中的函数(没错,“cout”和“cin”是函数)。很多人经常犯的一个错误就是想调用一个函数,却没有在程序中打开包含此函数的库。导致程序发生异常。除了“cout”“cin”,C++ 还提供了其他的函数。例如:函数 strcat() 用来连接两个字符串,函数memcpy() 用来复制内存到另一个位置...
通常情况下,函数由四部分组成:返回类型,函数名称,参数,函数主体.
咱们不妨直接来看一个例子:
#include<iostream>
using namespace std;
int Add(int a,int b);
int main(){
int a,b,sum;
cout<<"输入你想要相加的数。"<<endl<<"输入第一个数:";
cin>>a;
cout<<"输入第二个数:";
cin>>b;
sum=Add(a,b);
cout<<"结果为:"<<sum<<endl;
return 0;
}
int Add(int a,int b){
return a+b;
}
在这个程序中的第三行我们定义了一个名为"Add"的函数 。它的函数名便是“Add”。在第10行中我们调用此函数的时候,我们就要使用到“Add”这一函数名。这个函数的主体在14至16行中间,而声明函数却在主函数之前。我们可以形象的理解成:先告诉主函数在此程序中有一个名为“Add”的函数。而最后再告诉它此函数的含义。
在第三行中,我们在函数名之后又定义了两个参数(一定要在括号内定义)。不过参数并非是必须的要素,因此我们完全可以不定义参数。让我们直接跳到最后的函数主体部分。这个函数非常简单。主体部分只有一句话,即:“return a+b”意为返回值为参数“a”与“b”的和。而返回值的意思就是,程序将函数所接受到的参数经过你所定义的运算法则进行处理后,再给函数返回的值。我也可以这么写:
#include<iostream>
using namespace std;
int jud(int a);
int main(){
int a,J;
cin>>a;
J=jud(a);
cout<<J<<endl;
return 0;
}
int jud(int a){
if(a%2==0)
return 1;
if(a%2!=0)
return 0;
}
意思是输入一个数,如果是偶数,则输出“1”如果不是则输出“0”。
我们可以将函数主体看成我们学习中的函数解析式,最后的返回值则是在这个函数规则下的函数值。
值得注意的一点是我们不可以直接输出一个函数。我们必须调用它。在第一个程序的第十行,第二个程序的第七行,我们调用了我们所定义的函数。将函数所返回的值赋予我们所定义的数,并最终输出这个数。
这便是今天关于函数的内容,函数是一个非常大的概念,比之前讲的循环还要更加的难以理解。下周(也许)我会接着吧函数的内容丰富完全。至少让大家有一个较为完整的感念,并能运用函数做出一些小的程序。
编程是一个比较枯燥的科目,所以我想先教会大家一些技巧,并运用很多小程序来讲解。这样大家便可以自己做出一些实(装逼)用的小程序。从中获得乐(kuai)趣(gan)。我所说的技巧全部是我自己看工具书之类的书籍自学而成,所以并非标准的教程。为了方便理解也将很多的定义有所改编。再往后的知识就太过专业性了,我自己能理解的知识可能教不会大家,还请大家见谅。我的教程一定会让大家入门,可是要想登堂入室,成为职业的编程人员,最好还是参考专业的课程。
那么,不多说,大家再见!~
@元首SAMA 帮我修改一下这个程序,单独运行.exe这个文件就不行了
#include<iostream>
using namespace std;
int Add(int a,int b,int c);
int main(){
int a,b,c,d,sum;
cout<<"n 本程序运算格式为:a-b*(c+a)-ann 请输入[a][b][c][d]的值...n"<<endl<<" *请输入a的值: nn ";
cin>>a;
printf("n");
cout<<" *请输入b的值:nn ";
cin>>b;
printf("n");
cout<<" *请输入c的值:nn ";
cin>>c;
printf("n");
printf(" *计算中...nn");
sum=Add(a,b,c);
cout<<" *您输入的结果为:nn "<<sum<<endl;
printf("n");
}
int Add(int a,int b,int c){
return a-b*(c+a)-a;
return 0;
}
@元首SAMA 帮我修改一下这个程序,单独运行.exe这个文件就不行了
#include<iostream>
using namespace std;
int Add(int a,int b,int c);
int main(){
int a,b,c,d,sum;
cout<<"n 本程序运算格式为:a-b*(c+a)-ann 请输入[a][b][c][d]的值...n"<<endl<<" *请输入a的值: nn ";
cin>>a;
printf("n");
cout<<" *请输入b的值:nn ";
cin>>b;
printf("n");
cout<<" *请输入c的值:nn ";
cin>>c;
printf("n");
printf(" *计算中...nn");
sum=Add(a,b,c);
cout<<" *您输入的结果为:nn "<<sum<<endl;
printf("n");
return 0;
}
int Add(int a,int b,int c){
return a-b*(c+a)-a;
}
@元首SAMA 我又把这个程序修改了一下:
#include<iostream>
using namespace std;
int Add(int a,int b,int c);
int main(){
int a,b,c,d,sum;
cout<<"n 本程序运算格式为:a-b*(c+a)-ann 请输入[abcd]的值...n"<<endl<<" *请输入a的值:n";
cin>>a;
cout<<" *请输入b的值:n";
cin>>b;
cout<<" *请输入c的值:n";
cin>>c;
sum=Add(a,b,c);
cout<<" *您输入的结果为:n"<<sum<<endl;
return 0;
}
int Add(int a,int b,int c){
return a-b*(c+a)-a;
}
看懂啦,看懂啦
好复杂
add 让我想到了什么!!!