文章

C++Prime第一章1.11习题

#include<iostream>
using namespace ::std;
int main() {
    int x = 0, y = 0;
    if (cin >> x >> y) {
        while (x < y) { //输出x到y之间的所有数字,注意while的花括号
                        //花括号代表代码块,若不带花括号,while将只执行挨着它的那一句
                        //不带花括号就只执行++x,确实也走了一遍,可是没有每次都cout
                        //不带花括号就只会执行完while后继续往下走,执行一次cout,就没输出每个值了.
            ++x;
            cout << x << endl;
        }
    }

    return 0;
}

抽了点时间在同一天的下午14:25完善了一下上面的代码,现在可以随意输入整数值了。

#include <iostream>
using namespace ::std;
int main() {
    int x = 0, y = 0;
    if (cin >> x >> y and x!=y) {  //暂未学习and,我猜想应该能用
        while ( x < y) {
            ++x;
            cout << x << endl;
        }
        while ( y < x) {
            ++y;
            cout << y << endl;
        }


    }
    else {
        cerr << "你输入的两个数字相等!" << endl;
    }
    return 0;
}

在15:18再次更新一次略有瑕疵的可以计算完毕之后再次允许持续输入的版本,缺陷是当两个数字之间没有间隔任何整数的时候,会break退出

#include <iostream>
using namespace ::std;
int main() {
    int x = 0, y = 0;
    while (cin >> x >> y) {
        if (x != y) {
            if (x - y == 1 or y - x == 1 or x - y == -1 or y - x == -1) {
                cout << x << "和" << y << "之间没有间隔任何整数" << endl;
                break;

            }
            while (x < y) {
                ++x;
                cout << x << endl;
            }
            while (y < x) {
                ++y;
                cout << y << endl;
            }


        }
        else {
            cerr << "你输入的两个数字相等" << endl;
        }
    }
    return 0;
}

经过好友提醒,使用for循环重做了一次,于2019/5/20日00:13,依然存在瑕疵。

#include <iostream>
using namespace ::std;
int main() {
    int x = 0, y = 0;
    while (cin >> x >> y) {
        if (x != y) {
            if (x - y == 1 or y - x == 1 or x - y == -1 or y - x == -1) {
                cout << x << "和" << y << "之间没有间隔任何整数" << endl;
                break;
            }
            for (int i = ++x; i < y; ++i)//使用for语句植入i变量,不会和while一样在最后还输出y的值了
                                        //例如输入 1 3,while会cout 2 3. 然而3并非间隔的整数值
                cout << x - 1 << "和" << y << "的间隔数字有:" << i << endl;

            for (int i = ++y; i < x-1; ++i) //这里有瑕疵,这里的x下断点后查询,估计是因为走了一遍上一个for循环所以需要减1
                cout << y - 1 << "和" << x-1 << "的间隔数字有:" << i << endl;

        }
        else {
            cerr << "你输入的两个数字相等" << endl;
        }
    }
    return 0;
}
原文来自:C++Prime第一章1.11习题,尊重自己,尊重每一个人;转发请注明来源!
0 0

发表评论