IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验02 分支与循环程序设计(2021级)(2) -> 正文阅读

[C++知识库]吉林大学超星MOOC学习通高级语言程序设计 C++ 实验02 分支与循环程序设计(2021级)(2)

5.?爱因斯坦阶梯

题目编号:Exp02-Basic10,GJBook3-04-15

题目名称:爱因斯坦阶梯

问题描述:设有阶梯,不知其数,但知:每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨7阶,正好到楼顶。编程序求最少共有多少阶。

输入:无

输出:台阶数目

样例:无。详见输入输出说明。

#include <iostream>

using namespace std;

int main()
{
    int a;

    for (a = 7;;a += 14)
    {
        if ((a % 3 == 2) && (a % 5 == 4))
        {
            cout << a;
            break;
        }
    }

    return 0;

}

?将数学的思想与算法结合将会简化运算

由“每步跨7阶,正好到楼顶”和“每步跨2阶,最后剩1阶”得知,a不仅为7的倍数,而且a一定为奇数,所以我们没必要在for循环中加上(a%2==1)(a为奇数)的条件;

随后应该注意的是,题目要求“编程序求最少共有多少阶”,基于此,我们要在输出第一个a后退出for循环。

6.?嵌套函数

题目编号:Exp02-Basic05

题目名称:嵌套函数

题目描述:编写程序,当x=1.0、2.0、…、20.0时,计算如下函数到5层嵌套。F(x)=1+1/(1+1/(1+1/(1+1/(1+1/x))))
?

输入:一个浮点数表示x的值,输入保证x不为零。

输出:一个浮点数F(x)的值,保留小数点后3位。


样例:

1
1.625

看到有的同学直接把这个嵌套函数复制进代码然后打印输出,个人不是很推荐这种做法(没有对循环结构进行强化,而且治标不治本,如果输出y个嵌套呢?),所以我们还是来写for循环吧

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    double x = 1.0, y = 1.0;
    cin >> x;

    if (x != 0)
    {
        for (int i = 0;i < 5;i++)
        {
            y = 1 + 1.0 / x;
            x = y;
        }

        cout << fixed << setprecision(3) << y;
    }
    
    return 0;

}

7.?括号统计

题目编号:Exp02-Basic02

题目名称:括号统计

题目描述:编程序,判断给定以字符‘@’结束的字符序列中‘(’与‘)’、‘[’与‘]’、‘{’与‘}’的个数是否相等。

输入:输入一串以字符‘@’结束的字符序列,其间可能含有若干空白字符。

输出:个数不相等的括号(按花括号、方括号、圆括号的顺序);如果三种括号的个数都相等,输出NULL。


样例1:

输入:{a+b*c+(d/e-f]}}@
输出:{}[]()

样例2:

输入:{a??+??b*c+(d/e-f]}@
输出:[]()

#include <iostream>

using namespace std;

int main()
{
    char ch=0;
    int a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0;//计数器

    while(ch!='@')
    {
        cin >> ch;
        if (ch == '(') a1++;
        if (ch == ')') a2++;
        if (ch == '[') b1++;
        if (ch == ']') b2++;
        if (ch == '{') c1++;
        if (ch == '}') c2++;

    } 

    if (a1 != a2) cout << "()";
    if (b1 != b2) cout << "[]";
    if (c1 != c2) cout << "{}";
    if((a1==a2)&&(b1==b2)&&(c1==c2)) cout << "NULL";

    return 0;

}

看到上面那段代码,老观众肯定跳起来说:“什么?难道你不再爱for循环了吗?”,哈哈哈,其实不然

while循环对于不知道循环次数的情况时非常好用,这也是for循环的一个小小的缺点

8.?(程序题)

题目编号:Exp02-Enhance04,GJBook3-04-14

题目名称:字母矩阵

题目描述:用循环语句控制打印如下图形,其中输出的每个字母占用2个字符宽度(空格在前,字母在后)。

字符图形.jpg

??

输入:无

输出:如上图字母矩阵

说明:请同学们根据字母、位置的规律实现该程序。打表爽一时,考试两行泪~

?闲话少叙,直接上代码

#include <iostream>

using namespace std;

int main()
{
    cout << " A B C D E F G H I" << endl;

    cout << " B C D E F G H I A" << endl;

    cout << " C D E F G H I A B" << endl;

    cout << " D E F G H I A B C" << endl;

    cout << " E F G H I A B C D" << endl;

    cout << " F G H I A B C D E" << endl;

    cout << " E F G H I A B C D" << endl;

    cout << " D E F G H I A B C" << endl;

    cout << " C D E F G H I A B" << endl;

    cout << " B C D E F G H I A" << endl;

    cout << " A B C D E F G H I" << endl;

    return 0;

}

?搞错了,重来!不会真的有同学按照上面那种方式打表吧,不会吧不会吧

那我们还是用循环语句来写吧

#include <iostream>

using namespace std;

int main()
{
    char arr[18] = {'A','B','C','D','E','F','G','H','I','A','B','C','D','E','F','G','H','I' };

    for (int i = 0;i < 6;i++)//行数
    {
        //行的内容
        for (int j = i;j < 9 + i;j++)
        {
            cout << " "<<arr[j];
        }
        cout << endl;
    }

    for (int i = 5;i >0;i--)
    {
        for (int j = i-1;j <i+8;j++)
        {
            cout << " "<<arr[j];
        }
        cout << endl;
    }
    
    return 0;

}

数组的巧妙定义

可以看到,在定义数组时没有选择A到I,而是从A到I再从A到I,哈哈哈哈哈哈哈哈哈

这样做其实是为了避免再写一个循环左移的函数

for循环还是一样,外层定义行,内层定义行的内容

特别注意,输出每一行的内容时,要确保输出9个字符

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:27:06  更:2021-11-19 17:29:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:27:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码