内存:128  时间:1

题目描述

这次是XLL第三次考四级了,作为她的亲属,我是很希望她能通过的。等到XLL出了考场,我问她答得怎么样,她告诉我说~~~不咋样-.-!翻译和作文倒是不难,可是听力她却做的一塌糊涂,omg~~  下午我考完了六级,就帮XLL百度了一下四级的听力答案,竟然让我发现了一个惊天秘密,这答案还真是“三短一长选最长,三长一短选最短,同长为A,同短为C,不然选D”,我马上把这个秘密告诉给XLL,想让她对对答案,可是XLL忘得太快,只能回忆起几个题的答案了,无奈,只能算算她的大概正确率咯。
   请你编程帮XLL算一下她回忆起的题目中有几个做对了,我好估计一下她听力的正确率."三短一长选最长"指最长的选项如果比其他三个选项长度至少大25且其余三项长度都不大于45则选择它;"三长一短选最短"指最短的选项如果比其他三个选项长度至少小25且其余三项长度都不小于45则选择它;“同长为A”指四个选项长度都大于45且任意两项差小于15则选A;“同短为C”指四个选项长度都小于45且任意两项差小于15则选C;其他情况则选D;
   程序的部分代码已给出,请把xllzki()补充完整,并只提交该部分代码。

#include <stdio.h>
#include <string.h>
#include <math.h>
int max(int a,int b)
{
    return a>b?a:b;
}
int min(int a,int b)
{
    return a<b?a:b;
}
int xllzki(int lena,int lenb,int lenc,int lend,char ans)
{
    int a[4],i,j;
    a[0]=lena,a[1]=lenb,a[2]=lenc,a[3]=lend;
    /*
       补充并提交该部分代码 
    */
}
int main()
{
    int i,tol=0;
    int lena,lenb,lenc,lend;
    int N;
    char ans;
    scanf("%d",&N);
    for(i=0; i<N; i++)
    {
        scanf("%d%d%d%d %c%*c",&lena,&lenb,&lenc,&lend,&ans);
        if(xllzki(lena,lenb,lenc,lend,ans))
            tol++;
    }
    printf("%.2f
",1.0*tol/N*25);
    return 0;
}

输入

首先输入一个数字N,代表XLL记得的题的个数(N<=25),接下来第二行到第N+1行,每行输入四个正整数
和一个大写英文字母(A,B,C,D),四个整数表示A,B,C,D四个选项的长度(长度<80),大写字母表示XLL
的答案。

输出

输出25个听力题XLL的正确率(N个中的正确数/N*25),结果保留两位小数。

样例输入

3
75 30 30 30 A
46 45 47 12 C
45 45 45 45 D

样例输出

16.67

提示

代码如下


#include <stdio.h>
#include <string.h>
#include <math.h>
int max(int a,int b)
{
    return a>b?a:b;
}
int min(int a,int b)
{
    return a<b?a:b;
}
int xllzki(int lena,int lenb,int lenc,int lend,char ans)
{
    int a[4],i,j;
    a[0]=lena,a[1]=lenb,a[2]=lenc,a[3]=lend;
int t,sum[6],k=0,max1=a[0],min1=a[0],t1=0,t2=0;
    char result;
    for(i=1;i<4;i++)
    {
        if(a[i]>max1){max1=a[i]; t1=i;}
        if(a[i]<min1){min1=a[i]; t2=i;}
    }
    for(i=0;i<3;i++)
        for(j=0;j<3-i;j++)
    {
        if(a[j]>a[j+1])
        {
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;
        }
    }
    for(i=0;i<4;i++)
    for(j=i+1;j<4;j++)
    {
        sum[k]=a[j]-a[i];
        k++;
    }
        if(a[3]-a[0]>=25 && a[3]-a[1]>=25 &&a[3]-a[2]>=25 && a[0]<=45 &&a[1]<=45 &&a[2]<=45)
            result='A'+t1;
        else if(a[3]-a[0]>=25&& a[2]-a[0]>=25&& a[1]-a[0]>=25 && a[1]>=45 &&a[2]>=45 && a[3]>=45)
            result='A'+t2;
            else if(a[0]>45 &&a[1]>45 &&a[2]>45 &&a[3]>45 && sum[0]<15 && sum[1]<15 && sum[2]<15 &&sum[3]<15 &&sum[4]<15 &&sum[5]<15)
            result='A';
        else if(a[0]<45 &&a[1]<45 &&a[2]<45 &&a[3]<45 && sum[0]<15 && sum[1]<15 && sum[2]<15 &&sum[3]<15 &&sum[4]<15 &&sum[5]<15)
            result='C';
        else result='D';
        if(result==ans)return 1;
       else return 0;
}
int main()
{
    int i,tol=0;
    int lena,lenb,lenc,lend;
    int N;
    char ans;
    scanf("%d",&N);
    for(i=0; i<N; i++)
    {
        scanf("%d%d%d%d %c%*c",&lena,&lenb,&lenc,&lend,&ans);
        if(xllzki(lena,lenb,lenc,lend,ans))
            tol++;
    }
    printf("%.2f
",1.0*tol/N*25);
    return 0;
}

代码来源于互联网,仅供参考!