zoukankan      html  css  js  c++  java
  • 1054 求平均值

    本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。

    输入格式:

    输入第一行给出正整数 N(100)。随后一行给出 N 个实数,数字间以一个空格分隔。

    输出格式:

    对每个非法输入,在一行中输出 ERROR: X is not a legal number,其中 X 是输入。最后在一行中输出结果:The average of K numbers is Y,其中 K 是合法输入的个数,Y 是它们的平均值,精确到小数点后 2 位。如果平均值无法计算,则用 Undefined 替换 Y。如果 K 为 1,则输出 The average of 1 number is Y

    输入样例 1:

    7
    5 -3.2 aaa 9999 2.3.4 7.123 2.35
    

    输出样例 1:

    ERROR: aaa is not a legal number
    ERROR: 9999 is not a legal number
    ERROR: 2.3.4 is not a legal number
    ERROR: 7.123 is not a legal number
    The average of 3 numbers is 1.38
    

    输入样例 2:

    2
    aaa -9999
    

    输出样例 2:

    ERROR: aaa is not a legal number
    ERROR: -9999 is not a legal number
    The average of 0 numbers is Undefined
    
     
    思路:注意还有一个合法区间 [1000,1000]的问题......
     
     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<stdlib.h>
     4 #include<string.h>
     5 int main()
     6 {
     7     int N;
     8     scanf("%d",&N);
     9     float sum=0;
    10     int T=0,mark;
    11     char str[100]; 
    12     for(int i=0;i!=N;i++)
    13     {
    14         scanf("%s",str);
    15         int len=strlen(str);
    16         int flag=0;
    17         int fu=0,dian=0;
    18         for(int i=0;i<len;i++)
    19         {
    20             if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
    21             {
    22                 flag=1;
    23                 break;
    24             }
    25             else if(str[i]=='-')
    26                 fu++;
    27             else if(str[i]=='.')
    28             {
    29                 dian++;
    30                 mark=i;
    31             }
    32         }
    33         int flag1=0;
    34         if(flag==1||dian>1||fu>1)
    35             printf("ERROR: %s is not a legal number
    ",str);
    36         else 
    37         {
    38             if(atof(str)>1000||atof(str)<-1000)
    39                 printf("ERROR: %s is not a legal number
    ",str);
    40             else 
    41             {
    42                 if(dian==1)
    43                 {
    44                     if((len-mark)>3)
    45                     {
    46                         flag1=1;
    47                          printf("ERROR: %s is not a legal number
    ",str);
    48                     }
    49                  }
    50                 if(flag1==0)
    51                 {
    52                     sum=sum+atof(str);
    53                     T++;
    54                 }
    55             }
    56         }
    57     }
    58     if(T==0)
    59         printf("The average of 0 numbers is Undefined
    ");
    60     else if(T==1)
    61     {
    62         float average=sum/T;
    63         printf("The average of %d number is %.2f
    ",T,average);
    64     }
    65     else 
    66     {
    67         float average=sum/T;
    68         printf("The average of %d numbers is %.2f
    ",T,average);
    69     }
    70     return 0;
    71 }
    大佬见笑,,
  • 相关阅读:
    chrome rpm旧版本下载地址
    windows 静态绑定arp
    ubuntu20开机自动打开浏览器全屏访问指定页面
    nginx+uwsgi+django+systemd部署django项目
    openresty编译安装
    windows服务器设置定时重启
    华为云和AWS之间打通内网
    python glob
    python subprocess
    python 异常
  • 原文地址:https://www.cnblogs.com/xwl3109377858/p/10479402.html
Copyright © 2011-2022 走看看