练习题
- 近似求 e=1 + 1/1! + 1/2! + 1/3! + …的值
// 求 e
// e=1 + 1/1! + 1/2! + 1/3! + …
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
// 循环次数
int i;
// e 是近似求出的值
// t 是通项
double e, t;
// 1e-7 10的负7次方 2.3e8
i = 1, e = 1, t = 1;
while (t >= 1e-7){
t = t / i;
i += 1;
e += t;
}
cout<<"e ="<<e<<endl;
return 0;
}
- 求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + …
// 求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + …
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double i=1; // 分母的 1, 3, 5, 7
int j = 1; // 第几项
double PI, t; // π值和 通项
PI=1.00;
t = 1.00;
while (t > 1e-7){
i += 2;
t = 1 / i;
// 第一项是负的, 不是 1
if (j%2==1)
PI -= t;
else
PI += t;
j++;
}
cout<<"PI="<<4*PI<<endl;
return 0;
}
for 循环
格式: for (初始化表达式;条件表达式;步进表达式){循环体}
1 ~ 100 累加和
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
for (int i = 1; i <= 100; i++)
sum += i;
cout<<"sum="<< sum <<endl;
return 0;
}
下列写法也合法
注意区别
两种死循环
- 循环嵌套
// 循环嵌套
// 2 层嵌套是常见的
// 外层循环负责多少行; 内层循环负责具体的每一行
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 5 ; ++i) {
for (int j = 1; j <= 7 ; ++j) {
cout << " * ";
}
cout <<endl;
}
return 0;
}
- 打印九九乘法表
// 循环嵌套
// 2 层嵌套是常见的
// 外层循环负责多少行; 内层循环负责具体的每一行
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 9 ; ++i) {
for (int j = 1; j <= i ; ++j) {
// "\t" 代表 tab
cout << j << " x "<< i<< " = "<< i*j<< " ";
}
cout <<endl;
}
return 0;
}
函数
将重复的代码进行封装,可以被反复调用, 减少代码量
函数分类:
- 主函数 main 程序的入口
- 标准库函数 比如 pow() 已经写好,方便我们调用
- 自定义函数, 程序员编写的, 函数名要符合小驼峰命名规则
//例5.1 简单函数调用
#include <iostream>
using namespace std;
void printStar()
{
cout<<"******************"<<'\n';
}
void printMessage()
{
cout<<" Welcome to C++"<<'\n';
}
int main()
{
printStar();
printMessage();
printStar();
}
函数定义的格式
-
无返回值的
//例5.1 简单函数调用
#include <iostream>
using namespace std;
int getMin(int x, int y){
return x < y ? x : y;
}
int getSum(int x, int y){
return x + y;
}
int myAbs(int x){
if (x >= 0)
return x;
else
return -x;
}
int main()
{
// 先求两个数的最小值
// 将最小值 与 100 进行相加输出结果
int a, b, min;
cout<< "请输入两个整数 : "<< endl;
cin>> a>> b;
min = getMin(a, b);
int sum= getSum(min, 100);
;
cout<<"abs = "<< myAbs(sum)<< endl;
return 0;
}
函数定义的注意事项
// 1 ~ 任意正整数的累加和
// 有返回值要考虑全所有返回的情况
// return作用 1.返回响应的值 2 结束整个函数
#include <iostream>
using namespace std;
int caculateSum(int i){
int sum = 0;
for (int j = 1; j <= i ; ++j) {
sum += j;
if (sum > 1000){
// break;
return sum;
}
}
return sum;
}
int main()
{
int num = 3;
cout<<caculateSum(num)<<endl;
return 0;
}
作业
- 求pi值
- 书中例题 第四章每天一个
- 写一个函数求所有的水仙花数(一个三位数,其各位数字立方和等于该数字本身)
-
打印下列图形
等腰 20 行
网友评论