zoukankan      html  css  js  c++  java
  • 实验1 C++函数

    一.实验目的:

    1. 掌握定义函数的方法、函数实参与形参的对应关系以及“值传递”的方式。
    2. 熟悉函数的嵌套调用和递归调用的方法。
    3. 熟悉全局变量、局部变量概念和使用方式。

    二.实验内容:

    1. 运行调试第2章编程示例2-5减法游戏;完成练习题2.5.1,2.5.2和2.5.3;
    2. 运行调试第4章编程示例4-3素因数;完成练习题4.3.1,4.3.2,4.3.3;
    3. 运行调试第4章编程示例4-5汉诺塔;完成练习题4.5.1,4.5.2。

    三.示例代码:

      1.第2章编程示例2-5减法游戏:

    #include <iostream>

    using namespace std;

    int main() {
    int total, n;

    cout << "Welcome to NIM. Pick a starting total: ";
    cin >> total;
    while (true) {

    // Pick best response and print results.

    if ((total % 3) == 2) {
    total = total - 2;
    cout << "I am subtracting 2." << endl;
    } else {
    total--;
    cout << "I am subtracting 1." << endl;
    }
    cout << "New total is " << total << endl;
    if (total == 0) {
    cout << "I win!" << endl;
    break;
    }

    // Get user's response; must be 1 or 2.

    cout << "Enter number to subtract (1 or 2): ";
    cin >> n;
    while (n < 1 || n > 2) {
    cout << "Input must be 1 or 2." << endl;
    cout << "Re-enter: " << endl;
    cin >> n;
    }
    total = total - n;
    cout << "New total is " << total << endl;
    if (total == 0) {
    cout << "You win!" << endl;
    break;
    }
    }
    system("PAUSE");
    return 0;
    }

      2. 第4章编程示例4-3素因数:

    #include <math.h>
    #include <iostream>
    using namespace std;

    void get_divisors(int n);

    int main() {
    int n;

    cout << "Enter a number and press ENTER: ";
    cin >> n;

    get_divisors(n);

    cout << endl;
    system("PAUSE");
    return 0;
    }

    // Get divisors function
    // This function prints all the divisors of n,
    // by finding the lowest divisor, i, and then
    // rerunning itself on n/i, the remaining quotient.

    void get_divisors(int n) {
    int i;
    double sqrt_of_n = sqrt((double) n);

    for (i = 2; i <= sqrt_of_n; i++)
    if (n % i == 0) { // If i divides n evenly,
    cout << i << ", "; // Print i,
    get_divisors(n / i); // Factor n/i,
    return; // and exit.
    }

    // If no divisor is found, then n is prime;
    // Print n and make no further calls.

    cout << n;
    }

      3.第4章编程示例4-5汉诺塔:

    #include <cstdlib>
    #include <iostream>

    using namespace std;
    void move_rings(int n, int src, int dest, int other);

    int main()
    {
    int n = 3; // Stack is 3 rings high

    move_rings(n, 1, 3, 2); // Move stack 1 to stack 3
    system("PAUSE");
    return 0;
    }

    void move_rings(int n, int src, int dest, int other) {
    if (n == 1) {
    cout << "Move from "<< src <<" to "<< dest << endl;
    } else {
    move_rings(n - 1, src, other, dest);
    cout << "Move from "<< src <<" to "<< dest << endl;
    move_rings(n - 1, other, dest, src);
    }
    }

  • 相关阅读:
    SQL SERVER批量/单个修改表的所有者
    设置电脑右下角显示自己的大名
    javascript 事件查询 综合
    电脑命令大全值得珍藏
    仿flash超炫焦点图播放器 · javascript for jquery
    VirtualBox使用本地硬盘分区的权限问题
    同步时间并更新到计算机
    linux下电子词典里的扩展存储卡不能访问到的问题
    virtualbox 3.0.4终于可以共享剪贴板了
    批量更改mp3文件ID3编码的脚本
  • 原文地址:https://www.cnblogs.com/opengl/p/6497860.html
Copyright © 2011-2022 走看看