c++作业

数据的读取写入
例子1:成绩计算
定义长度为5的数组,存储一个班同学的成绩(分数大家任意赋值),清问该班级同学的
总分和平均分分别是多少?(注意掌握数组赋值的2种形式)
例子2:成绩统计
期末考试结束,王老师想知道这次考试中成绩优秀的同学有多少人(考试成绩大于或等于
90表示成绩优秀),请你编程帮助王老师来计算出成绩优秀的人数。
写法一:先做一个循环,读入数组每个元素的值,再做一个循环,统计优秀分数的个数
写法二:每读入一个分数,就判断该分数是否是优秀的!
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int a[5];
    int n = 5;
    cin>>n;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    int sum = 0;
    for(int i = 0;i<n;i++)
    {
        sum = sum + a[i];
    }
    cout<<sum<<endl;
    cout<<1.0*sum/n;
    return 0;
}

查找支撑数
题目描述
在已知一组整数中,有这样一种数非常怪,它们不在第一个,也不在最后一个,而且刚好都比左边和
右边相邻的数大,你能找到它们吗?
输入
第一行为整数m,表示输入的整数个数。( 3<= m <=100 )
第二行为m个整数。
输出
若干个支撑数,每行一个。
输入复制
14
1 3 2 4 1 5 3 9 7 10 8 23 85 43
输出复制
3
4
5
9
10
85
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int a[110];
    int n;
    cin>>n;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i = 1;i<n-1;i++)
    {
        if(a[i]>a[i-1] && a[i]>a[i+1])
        {
            cout<<a[i]<<endl;
        }
    }
    
    
    
    return 0;
}

排除异形基因
题目描述
神舟号飞船在完成宇宙探险任务回到地球后,宇航员张三感觉身体不太舒服,去了医院检查,医生诊
断结果:张三体内基因已被改变,原有人体基因序列中已经被渗入外星球不明异形生物基因,但可喜
的是,这些异形基因都有一个共同的特征,就是该基因序号的平方除以7的余数都是1,要赶快清除掉,
否则会危害整个人类。赶快行动吧。
输入
第一行是一个整数n(基因个数,3<=n<=200) 第二行是n个整数(张三的基因序列)
输出
去除异形基因后的正常序列,空格隔开
输入复制
4
6 2 8 12
输出复制
2 12
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int a[210];
    int n;
    cin>>n;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i = 1;i<n;i++)
    {
        if(a[i]*a[i]%7 != 1)
        {
            cout<<a[i]<<endl;
        }
    }
    
    
    
    return 0;
}

找找谁的身高超过全家的平均身高
题目描述
找找谁的身高超过全家的平均身高。全家n口人,输入输出数据如下: (平均身高保留一位小数)
输入
第一行有一个整数n( 1 < n < 11 )。第二行是n个整数,用空格隔开。
输出
第一行为全家的平均身高(保留一位小数);第二行有若干个数,为超过平均身高的人的身高厘米数。
输入复制
7
175 160 172 158 178 162 142
输出复制
AVE=163.9
1:175 3:172 5:178
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int a[20];
    int n;
    cin>>n;
    int sum = 0;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
        sum = sum + a[i];
    }
    float b = 1.0*sum/n;
    for(int i = 1;i<n;i++)
    {
        if(a[i]>b)
        {
            cout<<i+1<<":"<<a[i]<<" ";
        }
    }
    
    
    
    return 0;
}

考试成绩的分布情况
题目描述
期末考试结束,小明的语文老师想知道,这次考试的成绩分布情况,主要计算如下几个数据:平
均分、>=平均分的总人数、<平均分的总人数,请你写程序帮助小明的语文老师来计算一下!
输入
第一行,一个整数n代表有n个人的成绩(n<=100)
第二行,n个人的语文成绩
输出
3个值,分别代表平均分、>=平均分的总人数、<平均分的总人数,请注意,平均分保留1位小数!
输入复制
5
100 98 97 99 90
输出复制
96.8 4 1
#include<iostream>
#include<iomanip>
usingnamespacestd;
intmain()
{
    inta[5];
    intn=5;
    cin>>n;
    for(inti=0;i<n;i++)
    {
        cin>>a[i];
    }
    intsum=0;
    for(inti=0;i<n;i++)
    {
        sum=sum+a[i];
    }
     sum = sum/n;
     int cnt = 0;
     int cnt2 = 0;
       for(int i = 0;i<n;i++)
       {
                if(a[i]>sum)
                {
                    cnt++;
                }
                if(a[i]<sum)
                {
                    cnt1++;
                }
       }
        cout<<cnt<<" "<<cnt1;
    return0;
}

打折优惠
题目描述
商场周末大优惠,规定凡购物超过100元时,超过100元那部分便可打9折。小雄同妈妈一起购买了一
大批物品,你能帮他算出最终的应付款吗?
输入
第一行一个整数N,表示所买物品的个数。 (N<=100)
第二行N个空格隔开的整数,表示N件物品要付的元数。
输出
最终的应付款。(保留两位小数)
输入复制
5
60 80 50 30 20
输出复制
226.00
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int a[110];
    int n;
    cin>>n;
    int sum = 0;
    for(int i = 0;i<=100;i++)
    {
        cin>>a[i];
        sum = sum+a[i];
    }
    if(sum > 100)
    {
        cout<<100 + (sum - 100)*0.9*1.00<<endl;
    }
    else
    {
        cout<<sum*1.00;
    }
    
    return 0;
}

橘子称重
学校买回来一大箱橘子,有m个(m>=100 && m <= 1000),橘子大小比较均匀,学校想称一下总共有多重,
发现大称坏掉了还没有修好,只有一个小的弹簧秤。学校又不想分开称,那样太慢了。
小明想了一个办法,由于橘子大小比较均匀,可以从中拿n个出来(n>=5 && n<=20),这n个橘子的重量弹
簧秤是可以称出来的,有了这n个橘子的重量,就可以计算出平均一个橘子有多重,这样就能知道整箱大约有多
重了。
请编写程序,从键盘读入橘子总数m,小明称的橘子的个数n以及这n个橘子的重量,计算出这箱橘子总共约有多
重(结果保留1位小数)。(4.1.52)
输入
2行,第一行2个整数m和n,分别代表一箱橘子的
总个数以及小明称的橘子的个数。
第二行为n个橘子的重量(整数)。
输出
一箱橘子的重量(保留1位小数)
输入复制
100 7
84 83 82 81 80 79 79
输出复制
8114.3
include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[30];
int n,m;
cin>>n>>m;
int sum = 0;
for(int i = 0;i<=n;i++)
{
cin>>a[i];
sum = sum+a[i];
}
float avg = 1.0*sum;
cout<<avg*sum;
return 0;
}

陶陶摘苹果
题目描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶
陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到
的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入
包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地
面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以
厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出
包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入复制
100 200 150 140 129 134 167 198 200 111
110
输出复制
5
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[5010];
int n;
cin>>n;
int j = 0;
int o = 0;
for(int i = 0;i<10;i++)
{
cin>>a[i];
if(a[i]%2 == 0)
{
o = o+a[i];
}
else
{
j = j+a[i];
}
}
cout<<j<<endl<<o;
return 0;
}

求和
题目描述
输入n( 1 <= n <= 5000 )个正整数,每个数都在1到20000之间;要求对这n个数中
的奇数和偶数分别求和。
输入
第一行,一个正整数n(1 <= n <= 5000 ); 第2-
n+1行,每行一个正整数,每个数都在1到20000之间。
输出
输出文件共有二行,每行包含一个整数,第一行为
所有奇数之和,第二行为所有偶数之和。
输入复制
5
3
10
7
5
8
输出复制
15
18
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[110];
for(int i = 0;i<10;i++)
{
cin>>a[i];
}
for(int i = 0;i<10;i++)
{
int tmp = a[i];
int c = 0;
bool f = true;
while(tmp != 0)
{
if(tmp%10%2 != 0)
{
f = false;
break;
}
tmp = tmp/10;
c++;
}
if(c%2 == 0 && f == true)
{
cout<<a[i]<<" ";
}
}

return 0;
}

完美偶数
题目描述
完美偶数指的是,如果一个数本身是偶数,且这个数是偶数位的数,且这个数的各个位也是偶数,
那么这个数就可以称为完美偶数;比如:28就是完美偶数,而246就不是,因为246是一个3位数。
请你编程求出,从键盘读入的n个数中,哪些数是完美的偶数,输出他们。
输入
第一行是一个整数n(n<=100)
第二行是n个整数(这些整数都是1~9999范围内的整数)
输出
按顺序输出这n个数中的完美偶数,每个数一行
输入复制
5
26 4286 228 32
1280
输出复制
26
4286
输出奇数和偶数
题目描述
输入n个整数,将其中的奇数和偶数分别显示出来(1 < n < 30)
输入
第一行:一个整数n。第二行:n个空格隔开的整数。
输出
第一行:若干个奇数。第二行:若干个偶数。(每个数前面都有一个空格)
输入复制
10
21 12 33 43 59 68 77 18 19 40
输出复制
21 33 43 59 77 19
12 68 18 40

#include<iostream>
using namespace std;
int main()
{
    int a[5010];
    int n;
    cin>>n;

    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i=0;i<n;i++)
    {
        bool f=true;
        int tmp =a[i];
        int c =0;
        while(tmp !=0)
        {
            if(tmp%10%2!=0)
            {
                f = false;
                break;
            }
            tmp =tmp/10;
            c++;     
        }
        if(c%2==0 && f==true)
        {
            cout<<a[i]<<" ";
        }
        
    }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值