2020-08-13

2020-08-13 10:38:23

習題3-3 出租車計價 (15分)

本題要求根據某城市普通出租車收費標準編寫程式進行車費計算。具體標準如下:

起步裡程爲3公裡,起步費10元;
超起步裡程後10公裡內,每公裡2元;
超過10公裡以上的部分加收50%的回空補貼費,即每公裡3元;
營運過程中,因路阻及乘客要求臨時停車的,按每5分鐘2元計收(不足5分鐘則不收費)。
輸入格式:
輸入在一行中給出輸入行駛裡程(單位爲公裡,精確到小數點後1位)與等待時間(整數,單位爲分鐘),其間以空格分隔。

輸出格式:
在一行中輸出乘客應支付的車費(單位爲元),結果四捨五入,保留到元。

輸入樣例1:

2.6 2

輸出樣例1:

10

輸入樣例2:

5.1 4

輸出樣例2:

14

輸入樣例3:

12.5 9

輸出樣例3:

34

參考程式碼:

#include<stdio.h>
int main(){
	int b;
	double a,x,y;
	scanf("%lf %d",&a,&b);
	y=b/5*2;
	if(a<=3) x=10;
	else if(a>3&&a<=10) x=10+(a-3)*2;
	else if(a>10) x=10+2*7+(a-10)*3;
	printf("%.f",x+y);

}
**

習題3-2 高速公路超速處罰 (15分)

**
按照規定,在高速公路上行使的機動車,達到或超出本車道限速的10%則處200元罰款;若達到或超出50%,就要吊銷駕駛證。請編寫程式根據車速和限速自動判別對該機動車的處理。

輸入格式:
輸入在一行中給出2個正整數,分別對應車速和限速,其間以空格分隔。

輸出格式:
在一行中輸出處理意見:若屬於正常行駛,則輸出「OK」;若應處罰款,則輸出「Exceed x%. Ticket 200」;若應吊銷駕駛證,則輸出「Exceed x%. License Revoked」。其中x是超速的百分比,精確到整數。

輸入樣例1:

65 60

輸出樣例1:

OK

輸入樣例2:

110 100

輸出樣例2:

Exceed 10%. Ticket 200

輸入樣例3:

200 120

輸出樣例3:

Exceed 67%. License Revoked

參考程式碼:

#include<stdio.h>
int main(){
	int a,b;
	scanf("%d %d",&a,&b);
	if(a-b>=b*0.1&&a-b<b*0.5)
printf("Exceed %.0f%%. Ticket 200",(a-b)*100.0/b);
	else if(a-b>=b*0.5)
		printf("Exceed %.0f%%. License Revoked",(a-b)*100.0/b);
	else printf("OK");
}

**

練習3-4 統計字元 (15分)

**
本題要求編寫程式,輸入10個字元,統計其中英文字母、空格或回車、數位字元和其他字元的個數。

輸入格式:
輸入爲10個字元。最後一個回車表示輸入結束,不算在內。

輸出格式:
在一行內按照
letter = 英文字母個數, blank = 空格或回車個數, digit = 數位字元個數, other = 其他字元個數
的格式輸出。

輸入樣例:

aZ & 09 Az

輸出樣例:

letter = 4, blank = 3, digit = 2, other = 1

參考程式碼:

#include<stdio.h>
int main(){
	int y=0,
		letter=0,
		blank=0,
		digit=0,
		other=0;
	char x;
	while(y<10){
			y++;
	scanf("%c",&x);
	if((x<='z'&&x>='a')||(x<='Z'&&x>='A')) {
		letter++;
	}
	else if(x==' '||x=='\n') {
		blank++;
	}
	else if(x<='9'&&x>='0') {
		digit++;
	}
	else {
		other++;
	}}
	printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
}