1054. 求平均值 (20)

来源:http://www.cnblogs.com/cqxhl/archive/2016/12/15/6183883.html
-Advertisement-
Play Games

1054. 求平均值 (20) 本題的基本要求非常簡單:給定N個實數,計算它們的平均值。但複雜的是有些輸入數據可能是非法的。一個“合法”的輸入是[-1000,1000]區間內的實數,並且最多精確到小數點後2位。當你計算平均值的時候,不能把那些非法的數據算在內。 輸入格式: 輸入第一行給出正整數N(< ...


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
 1 #include<iostream>
 2 #include<cstdlib>
 3 #include<cstdio>
 4 #include<cstring>
 5 using namespace std;
 6 int main(){
 7     char *num[105];
 8     int N,count=0;
 9     double average=0;
10     cin>>N;
11     for(int i=0;i<N;i++){
12         bool isNumber=true;     //判斷是否為合法數字
13         int point=0;            //監視小數點的個數
14         int point_=0;           //監視小數點之後的位數
15         num[i] = (char *)malloc(10*sizeof(char)); //申請空間
16         cin>>num[i];
17         int len=strlen(num[i]);
18         double temp=atof(num[i]);//將字元串轉換成數字,具體用法自行百度
19         if(temp<-1000||temp>1000)   isNumber=false;
20         for(int j=0;j<len;j++){  //對每一個元素的各個字元進行判斷
21             if(point==1) point_++;  
22             if(num[i][j]=='-'&&j!=0){//如果含有-,則-只有一個且在第一位
23                 isNumber=false;
24                 break;
25             }
26             if(num[i][j]!='.'){     
27                 if((num[i][j]<'0'||num[i][j]>'9')&&(num[i][j]!='-')){
28                     isNumber=false;
29                     break;
30                 }       
31             }else {             //如果是小數點
32                 point++;
33             }
34             if(point_>2||point>1){//如果小數點大於一個或者小數位數多餘2
35                 isNumber=false;
36                 break;
37             }
38         }
39         if(!isNumber)
40             cout<<"ERROR: "<<num[i]<<" is not a legal number"<<endl;
41         else {
42             count++;
43             average+=temp;
44         }
45     }
46     if(count==1)
47         printf("The average of 1 number is %.2lf",average);
48     else if(count==0)
49         printf("The average of 0 numbers is Undefined");
50     else
51         printf("The average of %d numbers is %.2lf",count,average/count);
52     return 0;
53 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在菜鳥教程自學了redis,總想著像Mysql一樣,在C/C++中進行對接。於是查詢了一些資料,最後找到了hiredis。然而直接用它的話,難免有點不方便。於是,對其進行封裝。 hiredis直接去git上克隆,地址:https://github.com/redis/hiredis。 下載好之後,由 ...
  • 之前寫了一篇yii2獲取登錄前的頁面url地址的文章,然後發現自己對於網站實現微信掃碼登錄功能的實現不是很熟悉,所以,我會寫2-3篇的文章來描述下一個站點如何實現微信掃碼登錄的功能,來複習下微信掃碼登錄網站的基本開發過程和需要註意的地方。這是第一篇,主要是描述如何在自己的登錄頁面內嵌入登錄二維碼。按 ...
  • 題目大意: 約翰的表哥羅恩生活在科羅拉多州。他近來打算教他的奶牛們滑雪,但是奶牛們非常害羞,不敢在游人如織的度假勝地滑雪。沒辦法,他只好自己建滑雪場了.羅恩的雪場可以劃分為W列L行(1≤W≤500;1≤L≤500),每個方格有一個特定的高度H(0≤H≤9999)。奶牛可以在相臨方格間滑雪,而且不能由 ...
  • #相當於對數據 加上 雙引號,$相當於直接顯示數據 1. #將傳入的數據都當成一個字元串,會對自動傳入的數據加一個雙引號。如:order by #user_id#,如果傳入的值是111,那麼解析成sql時的值為order by "111", 如果傳入的值是id,則解析成的sql為order by " ...
  • 問題描述: 在case語句中,這樣寫,編譯時,會提示變數unsafe,解決編譯器報錯的方法有下麵兩個: 1、給unsafe的變數賦值 case get(?Player_LoopTaskInfo) of {TargetCnt, TaskStar, TaskExp} -> ok; _ -> Target ...
  • 一、Memcached Memcached 是一個高性能的分散式記憶體對象緩存系統,用於動態Web應用以減輕資料庫負載。它通過在記憶體中緩存數據和對象來減少讀取資料庫的次數,從而提高動態、資料庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的 ...
  • 1041. 考試座位號(15) 每個PAT考生在參加考試時都會被分配兩個座位號,一個是試機座位,一個是考試座位。正常情況下,考生在入場時先得到試機座位號碼,入座進入試機狀態後,系統會顯示該考生的考試座位號碼,考試時考生需要換到考試座位就座。但有些考生遲到了,試機已經結束,他們只能拿著領到的試機座位號 ...
  • 1016. 部分A+B (15) 正整數A的“DA(為1位整數)部分”定義為由A中所有DA組成的新整數PA。例如:給定A = 3862767,DA = 6,則A的“6部分”PA是66,因為A中有2個6。 現給定A、DA、B、DB,請編寫程式計算PA + PB。 輸入格式: 輸入在一行中依次給出A、D ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...