模拟--罚站--平均数

来源:互联网 发布:数据资讯 编辑:程序博客网 时间:2024/04/27 19:42

1011: 最终得分

        现在的大学生程序设计竞赛的评分标准只有一个——是否正确。为了吸引更多的学生参赛,组委会决定修改评分标准,从6个方面进行评分:正确,强壮,全面,清晰,编程风格和可维护。针对这6个得分,去掉一个最高分,去掉一个最低分,再取平均分作为最终得分。有多组测试数据,每组测试数据由一行组成,用空格隔开6个整数(0<=grade<=10),表示6项得分。最后一行是6个0,表示结束,每组测试数据输出一行,输出最终得分(没有多余0或小数)。代码:
#include<stdio.h>
inta[6];
  main()
{
    intb,s,i,j,m,k;
    floatn;
    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>
intf[100000];
 main()
{inta,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
原创粉丝点击