C++Pirmer(第五章课后习题)(程序题源代码)

5.5

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    int grade;
    cout << "请输入您的成绩 ";
    cin >> grade;
    if (grade < 0 || grade>100)
    {
        cout << "该成绩不合法" << endl;
        return -1;
    }
    if (grade == 100)
    {
        cout << "等级成绩是:" << "A++" << endl;
        return -1;
    }
    if (grade < 60)
    {
        cout << "等级成绩是:" << "F" << endl;
        return -1;
    }
    int iU = grade / 10;
    int iT = grade % 10;
    string score, level, lettergrade;
    if (iU == 9)
        score = "A";
    else if (iU == 8)
        score = "B";
    else if (iU == 7)
        score = "C";
    else
        score = "D";
    if (iT < 3)
        level = "-";
    else if (iT > 7)
        level = "+";
    else
        level = "";
    lettergrade = score + level;
    cout << "等级成绩是:" << lettergrade << endl;

    return 0;
}


5.6

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    int grade;
    cout << "请输入您的成绩 ";
    cin >> grade;
    if (grade < 0 || grade>100)
    {
        cout << "该成绩不合法" << endl;
        return -1;
    }
    if (grade == 100)
    {
        cout << "等级成绩是:" << "A++" << endl;
        return -1;
    }
    if (grade < 60)
    {
        cout << "等级成绩是:" << "F" << endl;
        return -1;
    }
    int iU = grade / 10;
    int iT = grade % 10;
    string score, level, lettergrade;
    score = (iU == 9) ? "A" : (iU == 8) ? "B" : (iU == 7) ? "C" : "D";
    level = (iT < 3) ? "-" : (iT>7) ? "+" : "";

    lettergrade = score + level;
    cout << "等级成绩是:" << lettergrade << endl;

    return 0;
}


5.9

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    unsigned int vowelCnt = 0;
    char ch;
    cout << "请输入一段文本" << endl;
    while (cin >> ch)
    {
        if (ch == 'a')
            ++vowelCnt;
        if (ch == 'e')
            ++vowelCnt;
        if (ch == 'i')
            ++vowelCnt;
        if (ch == 'o')
            ++vowelCnt;
        if (ch == 'u')
            ++vowelCnt;
    }
    cout << "您输入的文本中共有" << vowelCnt << "个原音字母" << endl;
    return 0;
}

5.10

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    unsigned int aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0;
    char ch;
    cout << "请输入一段文本" << endl;
    while (cin >> ch)
    {
        switch (ch)
        {
        case 'a':
        case 'A':
            ++aCnt;
            break;
        case 'e':
        case 'E':
            ++eCnt;
            break;
        case 'i':
        case 'I':
            ++iCnt;
            break;
        case 'o':
        case 'O':
            ++oCnt;
            break;
        case 'u':
        case 'U':
            ++uCnt;
            break;
        }
    }
    cout << "元音字母a的数量是:" << aCnt << endl;
    cout << "元音字母e的数量是:" << eCnt << endl;
    cout << "元音字母i的数量是:" << iCnt << endl;
    cout << "元音字母o的数量是:" << oCnt << endl;
    cout << "元音字母u的数量是:" << uCnt << endl;
    return 0;
}

5.14

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    string currString, preString = "", maxString;
    int currCnt = 1, maxCnt = 0;
    while (cin >> currString)
    {
        if (currString == preString)
        {
            ++currCnt;
            if (currCnt > maxCnt)
            {
                maxCnt = currCnt;
                maxString = currString;
            }
        }
        else
        {
            currCnt = 1;
        }
        preString = currString;
    }
    if (maxCnt > 1)
        cout << "出现最多的字符串是:" << maxString << ",次数是:" << maxCnt << endl;
    else
        cout << "每个字符串都只出现了一次" << endl;
    return 0;
}

5.17

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    vector<int> v1 = { 0, 1, 1, 2 };
    vector<int> v2 = { 0, 1, 1, 2, 3, 5, 8 };
    vector<int> v3 = { 3, 5, 8 };
    vector<int> v4 = { 3, 5, 0, 9, 2, 7 };

    auto it1 = v1.cbegin();
    auto it2 = v2.cbegin();
    auto it3 = v3.cbegin();
    auto it4 = v4.cbegin();

    while (it1 != v1.cend() && it2 != v2.cend())
    {
        if (*it1 != *it2)
        {
            cout << "v1和v2之间不存在前缀关系" << endl;
            break;
        }
        ++it1;
        ++it2;
    }
    if (it1 == v1.cend())
    {
        cout << "v1是v2的前缀" << endl;
    }
    if (it2 == v2.cend())
    {
        cout << "v2是v1的前缀" << endl;
    }
    return 0;
}

5.19

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    do
    {
        cout << "请输入两个字符串:" << endl;
        string str1, str2;
        cin >> str1 >> str2;
        if (str1.size() < str2.size())
            cout << "长度较小的字符串是:" << str1 << endl;
        else if (str1.size() > str2.size())
            cout << "长度较小的字符串是:" << str2 << endl;
        else
            cout << "两个字符串等长" << endl;
    } while (cin);
    return 0;
}

5.20

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    string currString, preString;
    bool bl = true;
    cout << "请输入一组字符串:" << endl;
    while (cin >> currString)
    {
        if (currString == preString)
        {
            bl = false;
            cout << "连续出现的字符串是:" << currString << endl;
            break;
        }
        preString = currString;
    }
    if (bl)
        cout << "没有连续出现的字符串" << endl;
    return 0;
}

5.21

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    string currString, preString;
    bool bl = true;
    cout << "请输入一组字符串:" << endl;
    while (cin >> currString)
    {
        if (!isupper(currString[0]))
            continue;
        if (currString == preString)
        {
            bl = false;
            cout << "连续出现的字符串是:" << currString << endl;
            break;
        }
        preString = currString;
    }
    if (bl)
        cout << "没有连续出现的字符串" << endl;
    return 0;
}

5.23

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    cout << "请依次输入被除数和除数:" << endl;
    int ival1, ival2;
    cin >> ival1 >> ival2;
    if (ival2 == 0)
    {
        cout << "除数不能为0" << endl;
        return -1;
    }
    cout << "两数相除的结果是:" << ival1 / ival2 << endl;
    return 0;
}

5.24

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    cout << "请依次输入被除数和除数:" << endl;
    int ival1, ival2;
    cin >> ival1 >> ival2;
    if (ival2 == 0)
    {
        throw runtime_error("除数不能为0");
    }
    cout << "两数相除的结果是:" << ival1 / ival2 << endl;
    return 0;
}

5.25

#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>

using namespace std;

int main()
{
    cout << "请依次输入被除数和除数:" << endl;
    int ival1, ival2;
    while (cin >> ival1 >> ival2)
    {
        try
        {
            if (ival2 == 0)
            {
                throw runtime_error("除数不能为0");
            }
            cout << "两数相除的结果是:" << ival1 / ival2 << endl;
        }
        catch (runtime_error err)
        {
            cout << err.what() << endl;
            cout << "需要继续吗(y or 你)?";
            char ch;
            cin >> ch;
            if (ch != 'y'&&ch != 'Y')
                break;
        }
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值