noip第7课作业

1.    求平均值

【问题描述】

在一次运动会方队表演中,学校安排了十名老师进行打分。对于给定的每个参赛班级的不同打分(百分制整数),按照去掉一个最高分、去掉一个最低分,再算出平均分的方法,得到改班级的最后得分。

【样例输入】

90 89 92 90 93 95 88 90 89 88

【样例输出】

90.125

#include <iostream>
#include <iomanip> 
using namespace std;
int main(){
    //min:最小值  max:最大值  score:每次输入的分数 sum:总分 
    double min=1001, max=-1, score, sum=0;
    for(int i=0;i<10;i++){
        cin >> score;
        //求和已经有了 
        sum += score;
        if(min > score){
            min = score;
        }
        if(max < score){
            max = score;
        } 
    }
    double avg = (sum-min-max)/8; 
    cout << fixed << setprecision(3) << avg << endl; 
    return 0;
}

2.    打印水仙花数

【问题描述】

编程求出所有的水仙花数。水仙花数是一类特殊的三位数,它们每一个数位上的数字的立方和恰好等于这个三位数本身。

例如: 153 = 1*1*1 +5*5*5 + 3*3*3。

【样例输出】

153 370 371 407

#include <iostream>
using namespace std;
int main(){
    int a, b, c;
    for(int i=100;i<1000;i++){
        a = i/100;
        b = i%100/10;
        c = i%10;
        if(a*a*a+b*b*b+c*c*c==i){
            cout << i << " ";
        }
    }
    return 0;
}

3.    求平均年龄

【问题描述】

班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位

输入:第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。

输出:输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。

【样例输入】

2

18

17

【样例输出】

17.50

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    int n, m; 
    double sum=0.0;
    cin >> n;
    for(int i=0;i<n;i++){
        cin >> m;
        sum += m; 
    }
    cout << fixed << setprecision(2) << sum/n << endl;
    return 0;
}

4.    同时被3,5,7整除的数

【问题描述】

输出m和n之间(包括m和n)所有能够同时被3,5,7整除的数,其中0 <= m < n <= 1000。

输入:一行,包含两个整数m和n,其间以一个空格间隔;

输出:如果0到n之间没有能同时被3,5,7整除的数,输出0;如果有就输出这些数字。

【样例输入1】

0 100

【样例输出1】

0

【样例输入2】

100 300

【样例输出2】

105 210

#include <iostream>
using namespace std;
int main(){
    int m, n;
    int k=0;
    cin >> m >> n;
    for(int i=m;i<=n;i++){
        if(i%105==0){
            cout << i << " ";
            k++;
        }
    }
    if(k==0){
        cout << 0 << endl;
    }
    return 0;
}

5.    满足条件的数累加

【问题描述】

将正整数 m 和 n 之间(包括 m 和 n)能被 17 整除的数累加。其中,0 < m < n < 1000。

输入:一行,包含两个整数m和n,其间,以一个空格间隔。

输出:输出一行,包行一个整数,表示累加的结果。

【样例输入】

50 85

【样例输出】

204

#include <iostream>
using namespace std;
int main(){
    int m, n, sum = 0;
    cin >> m >> n;
    for(int i=m;i<=n;i++){
        if(i%17==0){
            sum += i;
        }
    }
    cout << sum << endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/zhplovelnn/p/10374124.html