目錄表

國立屏東商業技術學院 資訊工程系 程式設計(一)

作業6


trunin code c.hw6

due date: TBA

目的

  1. 練習格式化輸入與輸出

第1題

  1. 設計一個名為averageSpeed.c的程式
  2. 利用redirect的方式,將給定的輸入檔案讀入
  3. 輸入檔案為文字檔 包含 in.1 in.2 in.3,其格式如下
    • 每個檔案共有三行
    • 第一行「DU: HH:MM:SS」,DU為duration之意,其中HH為小時,MM為分鐘,SS為秒
    • 第二行「DT: XXXX.XX」,DT為distance之意,其中XXXX.XX為公里數,整數部份不超過4位,小數不超過2位
  4. 將輸入檔案讀入後,計算平均時速(公里/小時)
  5. 您必須先將duration轉換為 XXX.XX小時後才能計算出答案
  6. 將結果輸出
  7. 程式執行結果參考:

[9:19 user@ws hw6] ./a.out < in.1
Duration: 09:14:07(HH:MM:SS)
Distance:  196.19KM
Average Speed: 21.23KM/H
[9:19 user@ws hw6] ./a.out < in.2
Duration: 12:03:32(HH:MM:SS)
Distance: 1054.00KM
Average Speed: 87.40KM/H
[9:19 user@ws hw6] ./a.out < in.2
Duration: 01:30:00(HH:MM:SS)
Distance:   30.00KM
Average Speed: 20.00KM/H
[9:19 user@ws hw6]
執行結果與輸出格式必須與上述一致

第2題

Universal Product Code (UPC,統一商品條碼),普遍使用於美洲。UPC是一個12碼的編碼系統,其中最後一碼為檢查碼(check digit),當我們經掃描得到一個12碼的UPC條碼時,我們可以把前11碼以公式計算出檢查碼;所計算出來的檢查碼可以跟第12碼比對,即可知道這個條碼是否正確。

檢查碼的計算公式如下:

  1. 將前11碼中,單數號的位置的值加總
  2. 將前11碼中,雙數號的位置的值加總
  3. 將第一項計算的結果乘以3,並與第二項的結果加總
  4. 將第三項計算的結果減1後取其個位數
  5. 9減去第四項計算的結果,其值即為檢查碼

舉例來說:某商品之UPC條碼為 013800151735,套用前述公式:

  1. 0+3+0+1+1+3 = 8
  2. 1+8+0+5+7 = 21
  3. 8×3+21=45
  4. 45-1=44 ← 取個位數4
  5. 9-4=5 ←檢查碼
  1. 設計一個名為checkcodeUPC.c的程式
  2. 讓使用者輸入一個UPC條碼的前11碼
  3. 計算並輸出及檢查碼
  4. 程式執行結果參考:

[9:19 user@ws hw5] ./a.out
Please the first 11 digits of a UPC bar code: 01380015173
Check digit is 5.
[9:19 user@ws hw5]

提示:下面這個程式讓使用者輸入三個數字存放到char型態的變數中,因為'0’的ASCII碼為48,所以所有的輸入減掉48後就得到整數值。

#include <stdio.h>
 
int main()
{
  char x,y,z; 
 
  scanf("%c%c%c", &x, &y, &z);
  x-=48;
  y-=48;
  z-=48;
  printf("%d%d%d",x,y,z);
}


第3題

  1. 設計一個名為cel2fah.c的程式
  2. 讓使用者輸入一個攝氏溫度
  3. 計算並輸出對應的華氏溫度
  4. 溫度轉換公式為: 華氏 = 攝氏*(9/5)+32
  5. 程式執行結果參考:

[9:19 user@ws hw5] ./a.out
Celsius: XX.XX
=Fahrenheit: YY.YY
[9:19 user@ws hw5]
註:XX.XX為使用者輸入,YY.YY為程式計算後輸出

第4題

  1. 設計一個名為usd2twd.c的程式
  2. 讓使用者輸入美金兌台幣的匯率
  3. 讓使用者輸入美金數目
  4. 計算並輸出可換取的台幣數目
  5. 可換取的台幣還要扣除百分之2.5的手續費
  6. 程式執行結果參考:

[9:19 user@ws hw5] ./a.out
1 USD = ? TWD : XX.XX
How much USD dollar? XX.XX
You can get XXX.XXX TWD.
[9:19 user@ws hw5]
註:XX.XX為使用者輸入與程式計算後輸出