c++ day02

作者: __method__ | 来源:发表于2021-01-26 22:39 被阅读0次

练习题

  • 近似求 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 行




相关文章

网友评论

      本文标题:c++ day02

      本文链接:https://www.haomeiwen.com/subject/yejnzktx.html