阿摩線上測驗 登入

申論題資訊

試卷:101年 - 101年地方考四等_資訊處理#31858
科目:程式設計
年份:101年
排序:0

題組內容

一、某公司欲對薪資低於 5 萬元的員工調增薪資 3%,但調薪後薪資上限 5 萬元,原薪 資已達 5 萬元的員工不調薪。請用 C/C++、C#或 Java:

申論題內容

⑴寫一程式片段,可供不斷輸入一位員工的薪資,計算其調薪後薪資。所有員工處 理完後輸入 A~Z 之任一字元結束。(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
#include <stdio.h>
#include <ctype.h> // 包含判斷字元是否為字母的函數
int main() {
    float salary, newSalary;
    char input[50]; // 用於存儲輸入的字串
    printf("請輸入員工的薪資(或輸入A~Z之間任一字母以結束): ");
    while (scanf("%s", input) && !isalpha(input[0])) { // 檢查是否輸入了字母
        // 將字串轉換為薪資浮點數
        salary = atof(input);
        // 如果薪資低於50000,則增加3%
        if (salary < 50000) {
            newSalary = salary * 1.03;
            // 如果調整後的薪資超過50000,則將薪資設置為50000
            if (newSalary > 50000) {
                newSalary = 50000;
            }
        } else {
            // 薪資已經是50000或更高,不進行調整
            newSalary = salary;
        }
        printf("調整後的薪資是: %.2f\n", newSalary);
        printf("請輸入下一位員工的薪資(或輸入A~Z之間任一字母以結束): ");
    }
    printf("薪資調整完畢。\n");
    return 0;
}
這段程式首先提示使用者輸入員工薪資,然後讀取輸入。如果輸入的是字母(使用isalpha()檢查第一個字元),程式將結束。如果輸入的是薪資數值,程式將根據規則計算新薪資並列印出來。然後再次提示用戶輸入下一個員工的薪資,直到輸入字母為止。
為了將該代碼片段運行,需要確保環境中已經配置了C語言的編譯器。在Linux環境下,可以使用gcc編譯器來編譯和運行這段代碼。在Windows環境下,可以使用如Visual Studio、Code::Blocks等IDE,或者配置好的MinGW或Cygwin環境。