c++学习:Lambda练习和数组练习
练习一 进行加减乘除
普通方法
#include <iostream>
using namespace std;
int add(int a,int b)
{return a+b;
}
int min(int a,int b)
{return a-b;
}
int mul(int a,int b)
{return a*b;
}
float divRet(int a,int b)
{return (float)a/b;
}
int main() {int a;int b;char calWay;while(1){cout << "请输入两个数:"<< endl;cin >> a;cin >> b;cout<<"请输入运算符号:+ - * /" <<endl;cin >> calWay;switch(calWay){case '+':printf("两数之和是%d\n",add(a,b));break;case '-':printf("两数之差是%d\n",min(a,b));break;case '*':printf("两数之积是%d\n",mul(a,b));break;case '/':printf("两数之余是%f\n",divRet(a,b));break;default:printf("运算符输入错误,请重新输入\n");}}
}
Lambda方法
#include <iostream>
using namespace std;
int calculator(int a, int b, int (*p)(int a, int b))
{cout << "开始计算" << endl;
}
int main()
{int a = 0;int b = 0;char cal;while(1){cout << "请输入两个数:" << endl;cin >> a;cin >> b;cout << "请输入运算符+,-,*,/" << endl;cin >> cal;// auto minu = [a,b]()->int{ return a - b;};switch(cal){case '+':cout << calculator(a,b,[](int a, int b){return a + b;}) << endl;break;case '-':cout << calculator(a,b,[](int a, int b){return a - b;}) << endl;break;case '*':cout << calculator(a,b,[](int a, int b){return a * b;}) << endl;break;case '/':cout << calculator(a,b,[](int a, int b){return a / b;}) << endl;break;}}return 0;
}
练习二 求数组中最大值
#include <iostream>
using namespace std;
void initArry(int *arry, int len)
{for(int i=0; i< len; i++){cout << "请输入第" << i+1 << "个数" << endl;cin >> arry[i];}
}
void printArry(int *arry,int len)
{for(int i=0; i< len; i++){cout << arry[i] << endl;}
}
int getMaxFromArray(int *arry, int len )
{int maxTmp = arry[0];for(int i=0; i< len; i++){if(maxTmp < arry[i])maxTmp = arry[i];}return maxTmp;
}
int main() {int arry[5];int len = sizeof(arry)/sizeof(arry[0]);initArry(arry,len);printArry(arry,len);cout << "最大数是:" << getMaxFromArray(arry,len);
}