东方博宜c++1021-1050答案

1021: 【入门】求数II

#include<bits/stdc++.h>
using namespace std;
int main(){
    for(int i=1;i<=500;i++){
        if(i%3==2&&i%5==3&&i%7==2){
            cout<<i<<endl;
        }
    }
return 0;
}

1022: 【入门】百钱百鸡问题

#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    for(int a=0;a<=20;a++){
        for(int b=0;b<=33;b++){
            for(int c=0;c<=100;c++){
                if(a+b+c==100&&a*5+b*3+c/3.0==100){
                    cout<<a<<" "<<b<<" "<<c<<endl;
                }
            }
        }
    }
return 0;
}

1023: 【入门】判断素数

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    bool flag=0;
    for(int i=2;i<n;++i)
    {
        if(n%i==0)
        {
            flag=1;
        }
    }
        if(flag==1||n==1) cout<<"F";
        else cout<<"T";
return 0;
}

1024: 【入门】购买文具

#include<bits/stdc++.h>
using namespace std;
float n,a,b,c;
int main()
    {
    cin>>n;
    n=n*10;
    int m=0;
    for(a=1;a<n/8;a++)
    for(b=1;b<n/2;b++)
    for(c=1;c<n/1;c++)
    {
    if(a*8+b*2+c*1==n&&a+b+c>30)
    m++;
    }
    cout<<m;
    return 0;
    }

1025: 【入门】兑换硬币

#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    int cnt=0;
    for(int i=1;i<=100;i++){
        for(int j=1;j<=50;j++){
            for(int n=1;n<=20;n++){
                if(i*1+j*2+n*5==100){
                    cnt++;
                }
            }
        }
    }
    cout<<cnt;
return 0;
}

1026: 求商数和余数

#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    cout<<a/b<<" "<<a%b;
return 0;
}

1027: 【入门】求任意三位数各个数位上数字的和

#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    int x,g,s,b;
    cin>>x;
    g=x%10;
    s=x/10%10;
    b=x/100%10;
    cout<<g+s+b;
return 0;
}

1028: 【入门】输入一个三位数,把个位和百位对调后输出

#include<iostream>
#include<iomanip>
using namespace std;
int main(){

### C++ 实现姓名排序算法 为了实现姓名排序,在C++中可以利用标准模板库(STL)中的`vector<string>`来存储姓名列表,并使用`sort()`函数来进行排序。下面是一个完整的示例程序,展示了如何读取一组字符串形式的名字并对其进行升序排列[^1]。 ```cpp #include <iostream> #include <algorithm> // std::sort #include <string> #include <vector> using namespace std; // 自定义比较器,用于按字母顺序对名字进行排序 bool compareNames(const string& name1, const string& name2) { return name1 < name2; } int main() { vector<string> names = {"Alice", "Bob", "Charlie", "David"}; cout << "Before sorting:" << endl; for (const auto& name : names) { cout << name << ' '; } cout << '\n'; sort(names.begin(), names.end(), compareNames); cout << "\nAfter sorting alphabetically:\n"; for (const auto& name : names) { cout << name << ' '; } return 0; } ``` 上述代码创建了一个名为`compareNames`的布尔函数作为自定义比较器,该函数接收两个参数——待比较的名字,并返回一个布尔值表示前者是否应该排在后者之前。接着调用了`std::sort()`方法传入容器范围以及这个比较器对象完成排序操作。 对于更复杂的场景比如处理带姓氏和名字的情况或者考虑大小写敏感度等问题,则可能需要调整比较逻辑以满足具体需求[^3]。 #### 处理复杂情况下的改进措施 如果要支持更加灵活多变的数据结构如包含多个字段的对象集合时,建议采用面向对象编程的方式设计类模型,重载运算符或提供成员函数以便于定制化排序行为。例如: - 对象属性访问:通过getter/setter获取私有变量; - 运算符过载:<、<=、==等关系运算符可用于简化表达式书写; - 成员函数:可以直接在类内部定义静态/实例级别的辅助工具函数; 这些技术手段有助于增强程序可维护性和扩展性的同时也使得代码更具结构性与条理性[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值