模拟--罚站--平均数
来源:互联网 发布:数据资讯 编辑:程序博客网 时间:2024/04/27 19:42
1011: 最终得分
现在的大学生程序设计竞赛的评分标准只有一个——是否正确。为了吸引更多的学生参赛,组委会决定修改评分标准,从6个方面进行评分:正确,强壮,全面,清晰,编程风格和可维护。针对这6个得分,去掉一个最高分,去掉一个最低分,再取平均分作为最终得分。有多组测试数据,每组测试数据由一行组成,用空格隔开6个整数(0<=grade<=10),表示6项得分。最后一行是6个0,表示结束,每组测试数据输出一行,输出最终得分(没有多余0或小数)。代码:#include<stdio.h>
int
a[6];
main()
{
int
b,s,i,j,m,k;
float
n;
while
(1)
{
for
(b=0; b<=5; b++)
{
scanf
(
"%d"
,&a[b]);
}
if
(a[1]!=0||a[2]!=0||a[3]!=0||a[4]!=0||a[5]!=0||a[0]!=0)
{
for
(i=0; i<5; i++)
{
for
(j=i+1; j<=5; j++)
{
if
(a[i]<a[j])
{
s=a[i];
a[i]=a[j];
a[j]=s;
}
}
}
k=0;
for
(m=1; m<=4; m++)
{
k+=a[m];
}n=k/4.0;
printf
(
"%g\n"
,n);
}
else
break
;
}}
解题思路:排序,去掉最大值,最小值,求平均;重点:1,如果要求是不需要多余0;不规定保留多少位小数,则定义float。然后%g输出2,若是多组数据输入,可以用while(1){}结构;对数据有判断在里面定义;
罚站!上体育课了,同学们参差不齐的站好了,体育老师一看傻眼了,学生这么多,却没有按高矮顺序站好,于是,老师决定了一个惩罚措施,在一共N个学生的队列中,从第一个学生开始按顺序选择K个同学中身高最高的同学罚站(例如,第一次选择从第1个到第K个同学中的最高个罚站,第二次选择从第2个到第K+1个同学中的最高个罚站,……依次类推)。这位体育老师想请你编写一个程序,求出每次惩罚的学生的身高。
输入均为整数。
第一行N,K。学生人数N∈[1,100000],K∈[1,100];
第二行是N个整数,代表N个同学各自的身高。
共一行,回车结尾。按要求输出惩罚同学的身高。
#include<stdio.h>
int
f[100000];
main()
{
int
a,b,c,s,i,t,j,max;
{
scanf
(
"%d%d"
,&a,&b);
for
(c=0;c<=a-1;c++)
{
scanf
(
"%d"
,&f[c]);
}
t=a-b;
max=0;
for
(i=0;i<=t-1;i++)
{max=f[i];
for
(j=i+1;j<=i+b-1;j++)
{
if
(max<f[j])
{
max=f[j];
}
}
printf
(
"%d "
,max);
}
for
(j=t;j<=i+b-1;j++)
{
if
(max<f[j])
{
max=f[j];
}
}
printf
(
"%d\n"
,max);}
}解题思路:最主要就是利用两个for循环;求最大值重点:习惯去用这种方式来求最大值;
#include<stdio.h>
int
a[6];
main()
{
int
b,s,i,j,m,k;
float
n;
while
(1)
{
for
(b=0; b<=5; b++)
{
scanf
(
"%d"
,&a[b]);
}
if
(a[1]!=0||a[2]!=0||a[3]!=0||a[4]!=0||a[5]!=0||a[0]!=0)
{
for
(i=0; i<5; i++)
{
for
(j=i+1; j<=5; j++)
{
if
(a[i]<a[j])
{
s=a[i];
a[i]=a[j];
a[j]=s;
}
}
}
k=0;
for
(m=1; m<=4; m++)
{
k+=a[m];
}n=k/4.0;
printf
(
"%g\n"
,n);
}
else
break
;
}}
第一行N,K。学生人数N∈[1,100000],K∈[1,100];
第二行是N个整数,代表N个同学各自的身高。
#include<stdio.h>
int
f[100000];
main()
{
int
a,b,c,s,i,t,j,max;
{
scanf
(
"%d%d"
,&a,&b);
for
(c=0;c<=a-1;c++)
{
scanf
(
"%d"
,&f[c]);
}
t=a-b;
max=0;
for
(i=0;i<=t-1;i++)
{max=f[i];
for
(j=i+1;j<=i+b-1;j++)
{
if
(max<f[j])
{
max=f[j];
}
}
printf
(
"%d "
,max);
}
for
(j=t;j<=i+b-1;j++)
{
if
(max<f[j])
{
max=f[j];
}
}
printf
(
"%d\n"
,max);}
}解题思路:最主要就是利用两个for循环;求最大值
重点:习惯去用这种方式来求最大值;
0 0
- 模拟--罚站--平均数
- 【NOIP2015模拟10.20】平均数
- 【NOIP模拟】平均数
- 平均数
- 平均数
- 平均数
- 平均数
- 平均数
- 【NOIP 模拟赛】平均数 涂色游戏 序列题解
- HNUST 1641 罚时计算器(模拟) 湖南科技大学2014新生选拔赛
- 罚抄
- 外罚函数与内罚函数
- 移动平均数
- 算术平均数
- 算术平均数
- zjut1179平均数
- 平均数不等式
- 平均数 减法
- Python学习笔记(7)Mouse Input, More Lists and Dictionaries
- 【NoisyHeart的炼成】Part2:Beam效果
- IOS解析JSON
- 大数据 addthis hydra 九头蛇的学习 第二章
- html5 手机开发 如何区分横屏和竖屏, 在CSS中
- 模拟--罚站--平均数
- 新 Blog ! 以java and Andorid 為主建立學習筆記!
- request的编码方式是如何被确定的?
- 3D数学读书笔记——向量运算及在c++上的实现
- 补充 大数据 addthis hydra 九头蛇的学习
- sql查询做的报表实现自定义过滤和排序
- C#转换运算符
- 2014.04.30[论文学习]色彩及图像基础(二)
- 电脑常识之查看系统启动时间