阿摩線上測驗 登入

申論題資訊

試卷:113年 - 113 關務特種考試_四等_資訊處理(選試英文):程式設計概要#119478
科目:程式設計
年份:113年
排序:0

題組內容

三、編寫程式或程式片段(使用 Python, Java, C#, C 和 C++五種程式語言任一 種):

申論題內容

(一)計算使用者所輸入的一系列數據之平均值。這個程式將會不斷地從使用者那裡接收輸入 ,直到使用者輸入了一 個特定的結束標記(例如 “done”)後,即進行計算並顯示「所有輸入數據」的平均值。(8 分)

詳解 (共 3 筆)

詳解 提供者:Fourier
使用C++,若有錯誤敬請指正
 
#include<iostream>
#include<string>
using namespace std;
 
 
int main(){
    float avg;
    float sum=0;
    int count=0;
    while(true){
        cout<<"enter any number:";
        string num;
        cin>>num;
        if(num=="done") break;
        for(char c : num){
            if(!isdigit(c)&&c!='.'){
                cout<<"error,enter number"<<endl;
                break;
            }
            sum=sum+stof(num);
            count++;
    }
    }
    avg=sum/count;
    cout<<"average :"<<avg;
 
    return 0;
}
668693447661c.jpg668693517d9a2.jpg
分別為浮點數、整數跟輸入錯誤字元時的狀況
詳解 提供者:hchungw
PYTHON
 
def main():
    numbers = []
    while True:
        user_input = input("Enter a number (or type 'done' to finish): ")
        if user_input.lower() == 'done':
            break
        try:
            number = float(user_input)
            numbers.append(number)
        except ValueError:
            print("Invalid input. Please enter a valid number.")
    if numbers:
        average = sum(numbers) / len(numbers)
        print(f"The average value is: {average}")
    else:
        print("No valid numbers were entered.")
if __name__ == "__main__":
    main()
 
 
C++
 
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
    vector<double> numbers;
    string user_input;
    while (true) {
        cout << "Enter a number (or type 'done' to finish): ";
        cin >> user_input;
        if (user_input == "done") {
            break;
        }
        try {
            double number = stod(user_input);
            numbers.push_back(number);
        } catch (invalid_argument&) {
            cout << "Invalid input. Please enter a valid number." << endl;
        }
    }
    if (!numbers.empty()) {
        double sum = 0;
        for (double number : numbers) {
            sum += number;
        }
        double average = sum / numbers.size();
        cout << "The average value is: " << average << endl;
    } else {
        cout << "No valid numbers were entered." << endl;
    }
    return 0;
}
詳解 提供者:優雅的綠鋼琴
使用python。請各位先進指教,謝謝。
sum=0
i=1
while i==1:
   try:
       t=input(" 請輸入數據,每一筆後加逗號,最後一筆不加逗號:").split(",")
       for l in range(len(t)):
           t[l]=float(t[l] )
           sum=sum+t[l]
       leng = len(t)
       i = float(input(" 請輸入0結束"))
       if i ==0:
            break
       else:
            i=1
   except:
        i=1
print((sum/leng))