阿摩線上測驗 登入

申論題資訊

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

申論題內容

一、請利用 Python, Java, C#, C 和 C++五種程式語言的任一種程式語言,撰寫 一個包含 main()函式(function 或 method)且至少包含有一個子函式 (function 或 method)的完整程式,應用它來從一系列輸入的整數中找到 最大值。但必須要能有防呆機制,用於檢查使用者輸入是否為整數。如果 使用者輸入的是整數,程式將進行比較並找到最大值;如果輸入的不是整 數,程式將提示使用者輸入有誤,要求重新輸入。(25 分)

詳解 (共 3 筆)

詳解 提供者:優雅的綠鋼琴

使用python。請各位先進指教,謝謝。
def main(x): 
    lock=1
    while lock==1:
    
        s = input("請輸整數資料,中間用逗號隔開,最後一筆不逗號:  ").split(',')
        try:
                for i in range(len(s)):
                      s[i] = int(s[i])
                      lock=0
                      
                print(max(s))
               
        except:
                print( " 不是整數 重新輸入")
                lock=1
x=True
main(x)
 
詳解 提供者:hchungw
C++
 
#include <iostream>
#include <vector>
#include <limits>
using namespace std;
int getMaxValue(const vector<int>& numbers) {
    int max_value = numeric_limits<int>::min();
    for (int number : numbers) {
        if (number > max_value) {
            max_value = number;
        }
    }
    return max_value;
}
int main() {
    vector<int> numbers;
    string user_input;
    while (true) {
        cout << "Enter an integer (or type 'done' to finish): ";
        cin >> user_input;
        if (user_input == "done") {
            break;
        }
        try {
            int number = stoi(user_input);
            numbers.push_back(number);
        } catch (invalid_argument&) {
            cout << "Invalid input. Please enter a valid integer." << endl;
        }
    }
    if (!numbers.empty()) {
        int max_value = getMaxValue(numbers);
        cout << "The maximum value is: " << max_value << endl;
    } else {
        cout << "No valid integers were entered." << endl;
    }
    return 0;
}
 
 
PYTHON
 
def get_max_value(numbers):
    return max(numbers)
def main():
    numbers = []
    while True:
        user_input = input("Enter an integer (or type 'done' to finish): ")
        if user_input.lower() == 'done':
            break
        try:
            number = int(user_input)
            numbers.append(number)
        except ValueError:
            print("Invalid input. Please enter a valid integer.")
    if numbers:
        max_value = get_max_value(numbers)
        print(f"The maximum value is: {max_value}")
    else:
        print("No valid integers were entered.")
if __name__ == "__main__":
    main()
詳解 提供者:Fourier
使用C++,有錯誤敬請指教

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>


using namespace std;
 
bool is_integer(string number){
    return (number[0]=='-' || isdigit(number[0])) && all_of(number.begin()+1,number.end(), [](char c){
        return (isdigit(c));
    });
}
 
int main(){
    vector<int> number;
    string get_number;
    while(true){
        cout<<"請輸入整數:(輸入ENTER結束)"<<endl;
        getline(cin,get_number);        
        if(get_number.empty()){
            break;
        }
        if(is_integer(get_number)){
            number.push_back(stoi(get_number));
        } else cout<<"請輸入整數"<<endl;
    }        
   
    if(!number.empty()){
        auto it =max_element(number.begin(), number.end(),
        [](int a, int b) { return a < b; });
            cout<<"最大值是"<<*it;
    } else cout<<"沒數字"<<endl;
    return 0;
}
 
//
然後bool跟排序那兩段狗幹長的lambda看不懂也可以寫成這樣:
bool is_integer(string number){
    return (number[0]=='-' || isdigit(number[0])) && all_of(number.begin()+1,number.end(), ::isdigit);
}
sort(number.rbegin(),number.rend()); //從大排到小
cout<<"最大值是:"<<number[0];
比較短一點XD
輸出結果如下
66e3e8e7f27e5.jpg