2021专业课代码

一系列C++编程实例,包括找出300到500间能被2,3,7整除的数,实现十六进制到十进制的转换,比较字符串,计算两个逆序数之和,创建顺时针的蛇形矩阵,以及使用冒泡排序对结构体日期进行排序。这些练习涵盖了基础数值计算、字符串操作和排序算法的应用。
摘要由CSDN通过智能技术生成
//2021.1
#include<iostream>
using namespace std;
int main(){
    for(int i=300;i<=500;i++){
        if(i%2==0&&i%3==0&&i%7==0){
            cout<<i<<" ";
        }
    }
}
//2021.2    十六进制转换成十进制
#include<iostream>
using namespace std;
int main(){
    string a;
    cin>>a;
    int x=0;
    for(int i=0;i<a.length();i++){
        if(a[i]>='0'&&a[i]<='9'){
            x=x*16+(a[i]-'0');
        }
        else {
            switch (a[i]) {
                case 'A':x=x*16+10;break;
                case 'B':x=x*16+11;break;
                case 'C':x=x*16+12;break;
                case 'D':x=x*16+13;break;
                case 'E':x=x*16+14;break;
                default: x=x*16+15;
            }
        }
    }
    cout<<x<<endl;
}
//2021.3    字符串之间比较
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    string a,b;
    cout<<"输入第一个字符串";
    cin>>a;
    cout<<"输入第二个字符串";
    cin>>b;
    int k=0;
    int m=min(a.length(),b.length());
    for(int i=0;i<m;i++){
        if(a[i]>b[i]){
            cout<<a[i]-b[i]<<endl;
            return 1;
        }
        if(a[i]<b[i]){
            cout<<a[i]-b[i]<<endl;
            return -1;
        }
        if(i==m-1){
            if(a.length()>m){
                return 1;
            }
            else if (b.length()>m) {
                return -1;
            }
            else {
                return 0;
            }
        }
    }
    system("pause");
    }
    //2021.4    两个逆序相加
    #include<iostream>
    using namespace std;
    int main(){
        int x,y;
        int a,b;
        cin>>a>>b;
        int a1=0,b1=0;
        while (a!=0) {
            x=a%10;
            a=a/10;
            a1=a1*10+x;
        }
        while (b!=0) {
            y=b%10;
            b=b/10;
            b1=b1*10+y;
        }
        int sum=a1+b1;
        cout<<sum<<endl;
    }
    //2021.5        蛇形矩阵---顺时针
    #include<iostream>
    using namespace std;
    int main(){
        int n;
        cin>>n;
        int a[20][20];
        for(int i=0;i<n;i++){
            for(int j=0;j<n&&i+j<n;j++){
                a[0][0]=1;
                if(j==0&&i>0){
                    a[i][j]=a[i-1][0]+i+j+1;
                }
                else {
                    a[i][j]=a[i][j-1]+i+j;
                }
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n&&i+j<n;j++){
                cout<<a[i][j]<<" ";
            }
            cout<<endl;
        }
    }
//2021.7    结构体日期排序sort
    #include<iostream>
    using namespace std;
    struct date{
        int year;
        int month;
        int day;
    };
    int main(){
        date d[10];
        int n;
        cout<<"输入日期的个数:";
        cin>>n;
        for(int i=0;i<n;i++){
            cout<<"输入第"<<i+1<<"个日期:";
            cin>>d[i].year>>d[i].month>>d[i].day;
        }
        date da;
        for(int i=0;i<n-1;i++){
            for(int j=0;j<n-i-1;j++){
                if(d[i].year>d[i+1].year){
                    da=d[i];
                    d[i]=d[i+1];
                    d[i+1]=da;
                }
                if(d[i].year==d[i+1].year){
                    if(d[i].month>d[i].month){
                        da=d[i];
                        d[i]=d[i+1];
                        d[i+1]=da;
                    }
                    if(d[i].month==d[i].month){
                        if(d[i].day>d[i].day){
                            da=d[i];
                            d[i]=d[i+1];
                            d[i+1]=da;
                        }
                    }
                }
            }
        }
        for(int i=0;i<3;i++){
            cout<<d[i].month<<"/"<<d[i].day<<"/"<<d[i].year<<endl;
        }
    }
//2021.8
#include<iostream>
using namespace std;
int MyStringSum(char *str){
    int sum;
    sum=*str;
    return sum;
}
int main(){
    string a;
    cin>>a;
    int x=0;
    for(int i=0;i<a.length();i++){
        x=x+MyStringSum(&a[i]);
    }
    cout<<x<<endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值