• 假期编程


    此博客链接:https://www.cnblogs.com/ping2yingshi/p/12250218.html

    1.青年歌手大奖赛_评委会打分(23min)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2014

    Problem Description
    青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
    Input
    输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。
    Output
    对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。
    Sample Input
    3 99 98 97
    4 100 99 98 97
    Sample Output
    98.00
    98.50
    题解:此题没什么难度,可能我想的太复杂了,而且对排序算法不熟悉,所以做的相对慢点。
    代码如下:
    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
       
        int n; 
        
        while(~scanf("%d",&n))
        { 
            double avg; 
            double sum=0;
            int i;
            int m[100];
            for(i=0;i<n;i++)
                scanf("%d",&m[i]);
            int j;
            int k;
            int temp;
            for(i=0;i<n;i++)
            {
                k=i;
                for(j=i;j<n;j++)
                {
                    if(m[j]>m[k])
                         k=j;
                }
            temp=m[i];
            m[i]=m[k];
            m[k]=temp;
        }
        for(i=1;i<n-1;i++)
        {
                
            sum=sum+m[i];
                 
        }
               
        avg=sum/(n-2);
        printf("%0.2lf
    ",avg);
          
            
        
        }
      
        return 0;
        
    }

     2.字符串统计(13min)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2017

    Problem Description
    对于给定的一个字符串,统计其中数字字符出现的次数。
    Input
    输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
    Output
    对于每个测试实例,输出该串中数值的个数,每个输出占一行。
    Sample Input
    2
    asdfasdf123123asdfasdf
    asdf111111111asdfasdfasd
    Sample Output
    6
    9
    题解:此题难点在于如何获取一连串字符串,我使用gets获取的字符串,当遇见回车结束输入,并且存放'0'。
    代码如下:
    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
       
        int n; 
        scanf("%d
    ",&n);
        while(n>0)
        { 
            int count=0;
            char c[100];
            gets(c);
            int i=0;
            while(c[i]!='')
            {
                if(c[i]>='0'&&c[i]<='9')
                     count++;
                i++;
             }
             printf("%d
    ",count);
             n--;
        }
      
        return 0;
        
    }
     
  • 相关阅读:
    DOS 错误代码
    WINRAR 建立批处理备份文件
    clear.bat
    continue break
    播放dll中的wav声音
    BAT删除自身del 0
    bat 延时10秒自动关闭自己bat
    产生随机数
    RemoveDirZ.bat
    DELPHI中取整数的方法
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/12250218.html
Copyright © 2020-2023  润新知