Go ashore_19

1.按分数段输出成绩等级

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include<iostream>
using namespace std;
int main()
{
    double n;cin>>n;
    if(n>=90&&n<=100) cout<<"A";
    else if(n>=80&&n<=89) cout<<"B";
    else if(n>=70&&n<=79) cout<<"C";
    else if(n>=60&&n<=69) cout<<"D";
    else if(n<60) cout<<"E";
    return 0;
}

2.递归算法求1-100和

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include<iostream>
using namespace std;
int sum(int a)
{
    if(a==1) return 1;
    return (a+sum(a-1));
}
int main()
{
    int n;cin>>n;
    cout<<sum(n);
    return 0;
}

3.任意输四个数,从大到小输出

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;
int main()
{
    int a[4],t;
    for(int i = 0;i < 4;i ++ ) cin>>a[i];
    for(int i = 0;i < 3;i ++ )
        for(int j = 0;j < 3 - i;j ++ )
        {
            if(a[j]<a[j+1])
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    for(int i = 0;i < 4;i ++ ) cout<<a[i]<<" ";
    return 0;
}

4.输入一串字符,找出其中连续数字并输出

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<iostream>
using namespace std;
int main()
{
    int a[30];
    string s;cin>>s;
    bool flag = false;
    int i = 0,j = 0,k = 0;
    for(i = 0;i < s.length();i++)
    {
        while(s[i]>='0'&&s[i]<='9')
        {
            k = k * 10 + (s[i]-'0');
            i++;
            flag  = true;
        }
        if(flag)
        {
            a[j++] = k;
            k = 0;
            flag = false;
        }
    }
    i = 0;
    while(i < j)
    {
        cout<<a[i]<<" ";
        i++;
    }
    return 0;
}

5.输入学生成绩,并按输入顺序编号,再按顺序进行降序排序,输出前十名学生的成绩,如果学生人数不足十人则只输出仅有的学生成绩

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
using namespace std;
int main()
{
    int stu[30],n,tmp;
    cin>>n;
    for(int i = 0;i < n;i ++ ) cin>>stu[i];
    for(int i = 0;i < n;i ++ )
        for(int j = 0;j < n-i-1;j++)
        {
            if(stu[j]<stu[j+1])
            {
                tmp = stu[j];
                stu[j] = stu[j+1];
                stu[j+1] = tmp;
            }
        }
    for(int i = 0;i < n;i ++ )
        cout<<i+1<<"号"<<stu[i]<<"分"<<endl;
    return 0;
}

6.从键盘上输入一个小于1000的正数,输出他的平方根(平方根不是正数则输出其他部分)。要求输入数据后先检查是否为小于1000的正数,若不是要求重新输入

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int n,a;double p;
    while(cin>>n)
    {
        if(n<0||n>1000)
            cout<<"输入错误,重新输入"<<endl;
        else
        {
            a = sqrt(n);
            p = sqrt(n);
            if(a==p)
            {
                cout<<a<<endl;break;
            }
            else
            {
                cout<<p-a<<endl;break;
            }
        }
    }
    return 0;
}

7.输入俩数,输出最大公约数和最小公倍数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
int main()
{
    int m,n;cin>>m>>n;
    int t,q = m*n;
    while(m%n!=0)
    {
        t = m%n;
        m = n;
        n = t;
    }
    cout<<"最小公倍数:"<<q/t<<endl;
    cout<<"最大公约数:"<<t;
    return 0;
}

8.一个数恰好等于他的因子之和,就是完全数。编写程序找出1000之内的所有完全数,并按以下格式输出:6 its factors are 1 2 3。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
int main()
{
    int i,sum;
    for(int m = 2;m < 1000; m ++ )
    {
        sum = 0;
        for(i = 1;i < m;i ++ )
            if(m%i==0) sum += i;
        if(sum==m)
        {
            cout<<m<<"的因子为 ";
            for(int i = 1;i < m;i ++ )
                if(m%i==0) cout<<i<<" ";
            cout<<"。"<<endl;
        }
    }
    return 0;
}

9.简易计算器(加减乘除和退出)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<iostream>
using namespace std;
int main()
{
    int n;double a,b;
    cout<<"请选择加减乘除:1,2,3,4,0分别代表加减乘除和退出"<<endl;
    while(cin>>n)
    {
        if(n==1)
        {
            cout<<"请输加数:";
            cin>>a>>b;cout<<a+b<<endl;
        }
        if(n==2)
        {
            cout<<"请输减数:";
            cin>>a>>b;cout<<a-b<<endl;
        }
        if(n==3)
        {
            cout<<"请输乘数:";
            cin>>a>>b;cout<<a*b<<endl;
        }
        if(n==4)
        {
            cout<<"请输除数:";
            cin>>a>>b;cout<<a/b<<endl;
        }
        if(n==0)
        {
            cout<<"已退出!";break;
        }
        cout<<"请选择加减乘除:1,2,3,4,0分别代表加减乘除和退出"<<endl;
    }
    return 0;
}
updatedupdated2023-01-072023-01-07