題組內容
三、編寫程式或程式片段(使用 Python, Java, C#, C 和 C++五種程式語言任一
種):
(一)計算使用者所輸入的一系列數據之平均值。這個程式將會不斷地從使用者那裡接收輸入 ,直到使用者輸入了一 個特定的結束標記(例如 “done”)後,即進行計算並顯示「所有輸入數據」的平均值。(8 分)
詳解 (共 2 筆)
詳解
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.")
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.")
average = sum(numbers) / len(numbers)
print(f"The average value is: {average}")
else:
print("No valid numbers were entered.")
if __name__ == "__main__":
main()
main()
C++
#include <iostream>
#include <vector>
#include <string>
#include <vector>
#include <string>
using namespace std;
int main() {
vector<double> numbers;
string user_input;
vector<double> numbers;
string user_input;
while (true) {
cout << "Enter a number (or type 'done' to finish): ";
cin >> user_input;
cout << "Enter a number (or type 'done' to finish): ";
cin >> user_input;
if (user_input == "done") {
break;
}
break;
}
try {
double number = stod(user_input);
numbers.push_back(number);
} catch (invalid_argument&) {
cout << "Invalid input. Please enter a valid number." << endl;
}
}
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;
}
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;
}
}
詳解
使用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;
}


分別為浮點數、整數跟輸入錯誤字元時的狀況