有没有什么免费的网站,网站建设策划书(建设前的市场分析),自己如何建设网站首页,如何查网站的外链1、函数
函数是对实现某一功能的代码的模块化封装。 函数的定义#xff1a;
标准函数#xff1a;
输入 n 对整数的 a、b #xff0c;输出它们的和。
#include iostream
#include windows.h
using namespace std;int add(int a,int b);//函数原型声明int…1、函数
函数是对实现某一功能的代码的模块化封装。 函数的定义
标准函数
输入 n 对整数的 a、b 输出它们的和。
#include iostream
#include windows.h
using namespace std;int add(int a,int b);//函数原型声明int main()
{int n,a,b;cinn;int *cnew int[n];//动态数组for(int i0;in;i){cinab;c[i]add(a,b);//调用函数}for(int i0;in;i){coutc[i]endl;}return 0;
}int add(int a,int b){//函数定义return ab;
}
运行结果如下 无返回值
输入n输出1~n之间所有整数。
#include iostream
#include windows.h
using namespace std;void print(int n);//函数原型声明int main()
{int n;cinn;print(n);return 0;
}void print(int n){//函数定义for(int i1;in;i){coutiendl;}
}
运行结果 无参数
输入n如果n为10的倍数输出3个“very good”。
#include iostream
#include windows.h
using namespace std;void print();//函数原型声明int main()
{int n;cinn;if(n%100){print();}return 0;
}void print(){//函数定义for(int i1;i3;i){coutvery good!endl;}
} 运行结果如下 传值参数
输入两个整数a,b交换后输出。
#include iostream
#include windows.h
using namespace std;void swap(int x,int y);//函数原型声明int main()
{SetConsoleOutputCP(CP_UTF8);int a,b;cinab;swap(a,b);couta和b交换后a\tbendl;return 0;
}void swap(int x,int y){//传值参数定义int temp;tempx;xy;ytemp;
} 发现传值参数调用只在函数内有效离开函数参数并未交换值。
引用参数
比如int b a; 在定义b的时候前面的符号 就表示b是a的一个引用对引用变量的赋值等操作相当于对变量本身的操作。所以你对b赋值 ba14其实相当于aa14操作引用又称为别名相当于一个人两个名字。所以b是15。 接下来我们在参数前面加个号代表引用参数改变参数值跳出函数依然生效。 数组参数
输入n个数存入数组a[]中求和后输出和值。
#include iostream
#include windows.h
using namespace std;
//int a[100];//定长数组long long sum(int s[],int n){//参数数组long long count0;for(int i0;in;i){counts[i];}return count;
}
int main()
{SetConsoleOutputCP(CP_UTF8);int n;cinn;int *a new int[n];//动态数组for(int i0;in;i){cina[i];}coutsum 计算结果sum(a,n)endl;return 0;
}运行结果(这里我输入10个数) 字符串参数
输入n个字母如果是小写字母将其转换为大写字母输出转换后的字符串。
#include iostream
#include windows.h
#include cstring
using namespace std;string covert(string s)
{for(int i0;is.length();i){if(s[i]as[i]z){s[i]-32;//将小写字符转为大写}}return s;
}
int main()
{SetConsoleOutputCP(CP_UTF8);string s;cins;covert(s);coutsendl;return 0;
}运行结果 函数嵌套
#include iostream
#include windows.h
#include cstring
using namespace std;int gcd(int x,int y)//最大公约数
{int t;tx%y;//求余数 while(t!0){xy;//y做被除数 yt;//余数做除数 tx%y;//求余数 }return y;
}
int lcm(int x,int y){//最小公倍数return x*y/gcd(x,y);
}
int main()
{SetConsoleOutputCP(CP_UTF8);int a,b;cinab;cout最大公约数gcd(a,b)endl;cout最小公倍数lcm(a,b)endl;return 0;
}运行结果如下 函数重载多态
多个同名函数参数数目、类型、顺序不同
写一个函数对于字符串类型数据取其长度的一半对于浮点数类型求其值的二分之一。 #include iostream
#include windows.h
#include cstring
using namespace std;float half(float a){return a/2;
}
string half(string s){int ns.length()/2;char *strnew char[n];for(int i0;in;i){str[i]s[i];}return str;
}
int main()
{SetConsoleOutputCP(CP_UTF8);float a;string b;cinab;coutfloat 的一半值half(a)endl;coutstring 的一半值half(b)endl; return 0;
}运行结果 函数模版 C另一种编程思想称为 泛型编程 主要利用的技术就是模板 C提供两种模板机制:函数模板和类模板
函数模板作用
建立一个通用函数其函数返回值类型和形参类型可以不具体制定用一个虚拟的类型来代表。
函数模版语法
templatetypename T
T add(T x,T y)
{return xy;} 解释
template --- 声明创建模板
typename --- 表面其后面的符号是一种数据类型可以用class代替
T --- 通用的数据类型名称可以替换通常为大写字母
函数模版使用示例
//交换整型函数
void swapInt(int a, int b) {int temp a;a b;b temp;
}//交换浮点型函数
void swapDouble(double a, double b) {double temp a;a b;b temp;
}//利用模板提供通用的交换函数
templatetypename T
void mySwap(T a, T b)
{T temp a;a b;b temp;
}void test01()
{int a 10;int b 20;//swapInt(a, b);//利用模板实现交换//1、自动类型推导mySwap(a, b);//2、显示指定类型mySwapint(a, b);cout a a endl;cout b b endl;}int main() {test01();system(pause);return 0;
}总结
函数模板利用关键字 template使用函数模板有两种方式自动类型推导、显示指定类型模板的目的是为了提高复用性将类型参数化