1054 求平均值 (20分)

2021-02-20 ACM比賽整理

1054 求平均值 (20分)

本題的基本要求非常簡單:給定 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

思路:

看到這題因為有非法輸入我們應該知道了這題不能用「數」去處理數據了,應該以字符串的形式處理數據。但是這道題合法數字裡面有負數,又給我們帶來了一些問題,我一開始是有一些自己的想法的,但是抱著學習一下可能存在的更好的思路或者方法的態度上網查了一下,果然又讓我查到了一對很有意思的函數——sscanf函數和sprintf函數。關於這兩個函數的具體使用方法還請自己百度,我就不在這裡獻醜了。

sscanf用法

https://baike.baidu.com/item/sscanf/10551550?fr=aladdin

代碼:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char c[100],b[100]="1.0";
double a=0,s=0.0;
int s1=0,n;
int i,j,f;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%s",&c);
sscanf(c,"%lf",&a);
sprintf(b,"%.2lf",a);
f=0;
for(j=0;j<strlen(c);j++)
{
if (c[j]!=b[j])
{
f=1;
break;
}
}
if(f||a>1000||a<-1000)
printf("ERROR: %s is not a legal number\n",c);
else
{
s1++;
s+=a;
}
}
if(s1==0)
printf("The average of 0 numbers is Undefined");
else if(s1==1)
printf("The average of 1 number is %.2f",s);
else
printf("The average of %d numbers is %.2lf",s1,s/s1);
return 0;
}

相關焦點

  • Excel根據條件求平均值函數AVERAGEIF
    在Excel中,根據條件求平均值函數AVERAGEIF是最常用的函數之一,其是求平均值函數AVERAGE的功能升級,分為單條件求平均值函數AVERAGEIF和多條件求平均值函數AVERAGEIFS。本文主要講解單條件求平均值函數AVERAGEIF。
  • Excel求平均值技巧,老師輕鬆搞定成績統計
    在Excel中,可以利用函數和快捷鍵輕鬆完成求和之類的統計,今天【Excel與財務】應粉絲要求發布一期求平均值技巧,讓你深深感受下Excel的神奇魅力,讓工作也變得加有趣。如有不明白的可以關注【Excel與財務】私信小編!
  • 表格自動求平均值公式,Excel函數練習1
    辦公時用到表格,常常要對表格內的數據進行各種計算,其中求平均值是常用的公式之一,本次練習就是在Excel表格中如何求平均值。以一份成績排名為例,已在表格中錄入了各科成績,需要求出成績的平均分,該如何來完成呢?接下來,我們來一起學習表格求平均值公式吧!
  • Excel用AverageIfs函數多條件求平均值,含同列雙條件的實例
    AverageIfs函數與AverageIf函數的區別除能組合多個條件外,還表現在AverageIfs函數要求求平均值範圍與條件範圍必須一致,而AverageIf函數則不要求一致。以下是Excel用AverageIfs函數多條件求平均值的具體實例,含同列雙條件等六個實例,實例操作所用版本均為 Excel 2016。
  • 還在用Average計算平均值,那就真的Out了!
    求平均值和求和一樣,是非常普遍的問題,也是接觸Excel時接觸的最早的,但是,你真的會計算平均值嗎?一、Average:常規計算平均值。作用:計算平均值。語法結構:=Average(值、單元格引用或單元格範圍)。目的:計算銷量的平均值。
  • Excel去掉一個最大值(最高分)和一個最小值(最低分)求平均值
    今天我們來介紹Excel計算數字單元格個數函數COUNT,並結合前面文章中介紹的函數MAX、MIN,來實現去掉一個最大值(最高分)和一個最小值(最低分)求平均值。2.去掉一個最大值(最高分)和一個最小值(最低分)求平均值如下面這個例子,公式可以寫為=(SUM(B2:B9)-MAX(B2:B9)-MIN(B2:B9))/(COUNT(B2:B9)-2),意思是(總和-最大值-最小值)/(總個數-2),結果如圖中所示。
  • 按條件計算平均值,最快的方法來了
    話說六一兒童節某學校組織了文藝匯演,最後要計算各個同學的的平均分。函數大咖們連眼皮都不抬一下,直接一陣盲打。
  • 如何區分有效值和整流平均值
    這個電壓即為交流電的有效值,因其計算過程為先將周期函數平方,再積分求出面積除以周期(即計算平均值的意思),最後開根號,所以又稱均方根值,簡稱RMS。二、整流平均值的推導整流平均值簡單而言即代表此一交流電在全波整流後相同時間內波形圍出的面積與多大數值直流圍出的面積一致。
  • 有效值和整流平均值的推導
    這個電壓即為交流電的有效值,因其計算過程為先將周期函數平方,再積分求出面積除以周期(即計算平均值的意思),最後開根號,所以又稱均方根值,簡稱RMS。二、整流平均值的推導整流平均值簡單而言即代表此一交流電在全波整流後相同時間內波形圍出的面積與多大數值直流圍出的面積一致。
  • Excel中計算平均值的三種方法,別被Average函數,迷惑了眼
    我們知道平均值被廣泛運用於多種場合,比如在比賽中,去掉一個最高分和最低分求平均值,在衡量指標中,平均工資水平,你拖後腿了嗎……平均值是除匯總求和之外,使用頻率較高的一個比較指標了。當美股暴跌,一周兩次熔斷,平均市盈率就是在全球股市慘澹之中,尋找那隻紅得耀眼股的一個重要參考指標。
  • 如何估計球體體積和任意函數的平均值?
    計算球體體積的方法很多,本篇我們用一種特殊的方法來計算,這種方法不但可以計算球體體積,拋物體體積,還可以計算任意函數的平均值,它就是:函數值乘以區間長度的和估計我們要求的的量,首先來了解球的體積球的體積:
  • 平均值都不會計算,那就真的Out了!
    Average函數並不能滿足數據統計分析的需求,所以除了用Average函數計算平均值外,還必須掌握其他的計算技巧。功能:返回參數的算數平均值。語法結構:=Average(數值或單元格引用)。功能:計算滿足給定條件的所有單元格的算術平均值,即單條件計算平均值。語法結構:=Averageif(條件範圍,條件,[數值範圍])。注意實現:1、當參數「條件範圍」和「數值範圍」相同時,可以省略「數值範圍」。
  • 【E問E答】如何區分有效值和整流平均值
    這個電壓即為交流電的有效值,因其計算過程為先將周期函數平方,再積分求出面積除以周期(即計算平均值的意思),最後開根號  二、整流平均值的推導  整流平均值簡單而言即代表此一交流電在全波整流後相同時間內波形圍出的面積與多大數值直流圍出的面積一致。
  • 量子力學筆記7---波動力學-力學量的平均值
    例如,對於最簡單的情況 F(x) = x,粒子坐標的 x 的平均值為      這個表達式就普通概率論中的平均值公式。      需要注意的是這裡的平均值是多次對相同的系統測量得到位置的平均值,而不是對一個系統重複測量的平均值。因為一旦測量,這個事件就發生了,即概率為 1。
  • 限定條件下求平均值,只需要兩個excel函數就可以快速搞定
    在我們實際工作中,有時候需要限定條件對excel表裡的數據進行求平均值,我們該如何處理呢?其實只需要兩個excel函數就能快速搞定,這兩個函數分別是averageif函數以及averageifs函數,下面我們就一起學習一下。
  • 冬春航季 首都機場日均計劃執行航班1054架次
    新航季,南航從10月25日起全面轉場至大興機場運營,東航、上航繼續分批次轉場並延續兩場共同運營模式。在「一市兩場」運營格局等綜合因素影響下,首都機場日均計劃執行航班1054架次,較本年度夏秋航季減少86架次。
  • excel函數公式大全之利用AVERAGE函數與IF函數的組合標記平均值
    excel函數公式大全之利用AVERAGE函數與IF函數的組合標記高於平均值的數據用▲表示低於平均值的數據用▼表示。excel函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數AVERAGE函數與IF函數,AVERAGE函數用於求平均值,IF函數用於條件判斷。
  • 平均值與標準差是懸在我們頭頂的兩把鞭子
    平均值和標準差不僅是統計分析裡最核心的概念,也是我們認識世界的重要基礎,甚至是我們人生哲學的核心概念。
  • Excel算平均值常出錯,用好這3個均值函數,可解決90%實際問題!
    工作中,為了解決公司的實際問題,我們經常需要在Excel求均值,而平均值問題和我們的求和函數及計數函數一樣,有一些規律可循。比如根據一個條件求平均值就用AVERAGEIF函數,根據多條件求平均值就需要我們使用AVERAGEIFS函數。
  • Word表格用函數公式對列行及指定單元格求和、乘積、平均值的方法
    Word 也能用函數公式對表格中的數據求和、求乘積、求平均值,求最大值最小值等;Word 中總共有十八個公式,這裡列舉的只是常用的幾個。Word表格用函數公式計算,既可以對整列計算也可以對整行計算,還可以只對指定的幾個單元格計算,特別是對指定單元格計算十分靈活,可以滿足不同的需求。