实验一

task1

3526401-20251011084006265-1041459676

 

task2

3526401-20251011092256924-278277672

 

task3

3526401-20251012173501781-1845309812

 

task4

#include<iostream>
#include<string>
#include<algorithm>

bool is_palindrome(const std::string& s);
bool is_palindrome_ignore_case(const std::string& s);

int main() {
    using namespace std;
    string s;

    while (cin >> s) {
        cout << boolalpha << "区分大小写:" << is_palindrome(s) << "\n" << "不区分大小写:" << is_palindrome_ignore_case(s) << "\n\n";
    }
}

bool is_palindrome(const std::string& s) {
    std::string s1(s.size(), ' ');
    reverse_copy(s.begin(), s.end(), s1.begin());

    int i;
    for (i = 0;i < s.size();i++) {
        if (s[i] != s1[i]) {
            return 0;
            break;
        }
    }

    if (i == s.size() - 1)
        return 0;
}

bool is_palindrome_ignore_case(const std::string& s) {
    std::string s1;
    for (auto c : s)
        s1 += std::tolower(c);

    std::string s2(s1.size(), ' ');
    reverse_copy(s1.begin(), s1.end(), s2.begin());

    int i;
    for (i = 0;i < s1.size();i++) {
        if (s1[i] != s2[i]) {
            return 0;
            break;
        }
    }

    if (i == s1.size() - 1)
        return 0;
}

da24715dd363701cf9cfdbbfbda54e25

 

task5

#include<iostream>
#include<string>
#include<algorithm>

std::string dec2n(int x, int n = 2);

int main() {
    int x;
    while (std::cin >> x) {
        std::cout << "十进制: " << x << '\n'
            << "二进制: " << dec2n(x) << '\n'
            << "八进制: " << dec2n(x, 8) << '\n'
            << "十二进制: " << dec2n(x, 12) << '\n'
            << "十六进制: " << dec2n(x, 16) << '\n'
            << "三十二进制: " << dec2n(x, 32) << "\n\n";
    }
}

std::string dec2n(int x, int n) {
    if (x == 0)
        return "0";

    std::string s;

    while (x != 0) {
        int r;
        r = x % n;
        if (r >= 10)
            s += static_cast<char>('A'+ r -10);
        else
            s += static_cast<char>(r + '0');
        x = x / n;
    }

    std::reverse(s.begin(), s.end());

    return s;
}

da24715dd363701cf9cfdbbfbda54e25

 

task6

#include<iostream>
#include<iomanip>
#include<algorithm>

void putout(const std::string& s);

int main() {
    std::string s1,s2;
    int i;

    for (i = 0;i < 26;i++)
        s1 += static_cast<char>('a' + i);

    std::cout << "  ";
    putout(s1);

    for (auto c : s1)
        s2 += std::toupper(c);

    for (i = 1;i <= 26;i++) {
        std::cout << std::setfill(' ') << std::setw(2) << i;
        std::rotate(s2.begin(), s2.begin() + 1 , s2.end());
        putout(s2);
    }
}

void putout(const std::string& s) {
    for (auto c : s)
        std::cout << ' ' << c;
    std::cout << '\n';
}

860843151bf6cf72910d29c23097f499

 

task7

#include<iostream>
#include<cstdlib>
#include<ctime>
#include<vector>
#include<iomanip>

using namespace std;

int main() {
    srand(time(0));

    int correct = 0;
    for (int i = 0;i < 10;i++) {
        int x = rand() % 10 + 1;
        int y = rand() % 10 + 1;
        int z = rand() % 4;
        int ans;
        string s{ '+','-','*','/' };

        if (z == 0)
            ans = x + y;

        if (z == 1) {
            if (x < y)
                swap(x, y);
            ans = x - y;
        }

        if (z == 2)
            ans = x * y;

        if (z == 3) {
            if (x % y != 0) {
                vector<int> v;
                for (int k = 1;;k++) {
                    x = k * y;
                    if (x > 10) break;
                    v.push_back(x);
                }
                x = v[rand() % v.size()];
            }
            ans = x / y;
        }

        int answer;
        std::cout << x << " " << s[z] << " " << y << " " << "= ";
        std::cin >> answer;

        if (ans == answer)
            correct++;
    }

    double rate = correct / 10.00 * 100;
    std::cout << "正确率:" <<fixed<<setprecision(2)<< rate << '%' << '\n';
}

f53d2ddf1e2856d531b505a57d8e5b56

 

posted @ 2025-10-18 01:25  wifi战斗机  阅读(8)  评论(1)    收藏  举报