不会用C++来做,有会的吗

实现以键盘输入两个正数中的小数为下界,大数为上界,按由小到大的顺序输出该区间内除3余数为1的数

思路:
首先读取两个整数,然后使用min函数和max函数求其中的最小/最大值,进而使用for循环判断输出符合条件的数

参考代码:

#include <iostream>

using namespace std;

int main() {
    // 读入两个正整数
    int m, n;
    cout << "请输入两个正整数:";
    cin >> m >> n;

    // 确定小数和大数
    int small = min(m, n);
    int big = max(m, n);

    // 输出区间内除3余数为1的数
    for (int i = small; i <= big; i++) {
        if (i % 3 == 1) {
            cout << i << " ";
        }
    }
    cout << endl;

    return 0;
}
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7443473
  • 你也可以参考下这篇文章:输入3个整数,按有小到大的顺序输出(指针c++)
  • 除此之外, 这篇博客: C++三大特性之继承,由浅入深全面讲解,由基础语法到深度刨析。中的 3.继承中的作用域 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    1. 在继承体系中基类和派生类都有独立的作用域。两作用域互相独立,互不干扰。
    2. 子类和父类中有同名成员,子类成员将屏蔽父类对同名成员的直接访问,这种情况叫隐藏,也叫重定义。(在子类成员函数中,可以使用 基类::基类成员 显示访问)
    3. 需要注意的是如果是成员函数的隐藏,只需要函数名相同就构成隐藏。
    4. 注意在实际中在继承体系里面最好不要定义同名的成员。
    5. 来看下列代码来加深对上述知识点的刨析
    // Student的_num和People的_num构成隐藏关系,可以看出这样代码虽然能跑,但是非常容易混淆
    class People
    {
    protected :
     string _name = "小李子"; // 姓名
     int _num = 111; // 身份证号
    };
    class Student : public People
    {
    public:
     void Print()
     {
     cout<<" 姓名:"<<_name<< endl;
     cout<<" 身份证号:"<<People::_num<< endl;
     cout<<" 学号:"<<_num<<endl;
     }
    protected:
     int _num = 999; // 学号
    };
    void Test()
    {
     Student s1;
     s1.Print();
    };
    // B中的fun和A中的fun不是构成重载,因为不是在同一作用域
    // B中的fun和A中的fun构成隐藏,成员函数满足函数名相同就构成隐藏。
    class A
    {
    public:
     void fun()
     {
     cout << "func()" << endl;
     }
    };
    class B : public A
    {
    public:
     void fun(int i)
     {
     A::fun();
     cout << "func(int i)->" <<i<<endl;
     }
    };
    void Test()
    {
     B b;
     b.fun(10);
    };
    
  • 您还可以看一下 邵发老师的《C语言/C++学习指南》加密解密篇(安全相关算法)课程中的 暴力破解法小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:
    #include <iostream>
    using namespace std;
    void findNum(int a, int b){
        if(a > b){
            int temp = a;
            a = b;
            b = temp;
        }
        for(int i = a; i <= b; i++){
            if(i % 3 == 1){
                cout << i << " ";
            }
       }
    }
    int main(){
        int a, b;
        cin >> a >> b;
        findNum(a, b);
        return 0;
    }
    

    以上为C++代码实现,利用函数实现区间内遍历余数为1的数。首先输入两个整数a和b,并将这两个值做大小重排,以便于小值向大值遍历。其次,循环变量i从小值a开始,逐步加1遍历至大值b,若i对3求余结果为1,将该值输出至控制台。

以下是一个实现按要求输出区间内除3余数为1的数的C程序示例:

#include <stdio.h>

void printNumbers(int lower, int upper) {
    int start = (lower + 2) / 3 * 3 + 1;  // 计算符合条件的起始数
    if (start < lower) {
        start += 3;  // 如果起始数小于下界,则增加3,保证起始数在区间内
    }
    for (int num = start; num <= upper; num += 3) {
        printf("%d ", num);
    }
    printf("\n");
}

int main() {
    int num1, num2;
    printf("请输入两个正数:");
    scanf("%d %d", &num1, &num2);
    if (num1 <= num2) {
        printNumbers(num1, num2);
    } else {
        printNumbers(num2, num1);
    }
    return 0;
}

该程序首先通过键盘输入获取两个正数,然后根据大小关系确定区间范围。接下来,根据除3余数为1的性质,计算符合条件的起始数。然后使用循环递增3,依次输出符合条件的数,直到达到或超过上界。输出结果按照从小到大的顺序排列。