第九周編程總結
7-1 查詢水果價格 (15 分)
給定四種水果,分別是蘋果(apple)、梨(pear)、桔子(orange)、葡萄(grape),單價分別對應為3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上顯示以下菜單:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用戶可以輸入編號1~4查詢對應水果的單價。當連續查詢次數超過5次時,程序應自動退出查詢;不到5次而用戶輸入0即退出;輸入其他編號,顯示價格為0。
1)實驗代碼
include<stdio.h>
int main (void)
{
int choice,i;
double price;
printf("[1] apple\n");
printf("[2] pear\n");
printf("[3] orange\n");
printf("[4] grape\n");
printf("[0] exit\n");
for(i=1;i<=5;i++){
scanf("%d",&choice);
if(choice==0)
break;
switch(choice){
case 1:price = 3.00;break;
case 2:price = 2.50;break;
case 3:price = 4.10;break;
case 4:price = 10.20;break;
default:price = 0.00;break;
}
printf("price = %.2lf\n",price);
}
return 0;
}
2)設計思路
1.定義水果價格,種類
2.進行價格輸出
3.使用循環語句和switch語句對不同水果價格進行輸出
4.返回主函數
3)本題調試中遇到的問題及解決方案
1.將水果種類放到了for循環裏面
2.格式錯誤
4)運行結果截圖
7-2 計算油費 (15 分)
現在90號汽油6.95元/升、93號汽油7.44元/升、97號汽油7.93元/升。為吸引顧客,某自動加油站推出了“自助服務”和“協助服務”兩個服務等級,分別可得到5%和3%的折扣。
本題要求編寫程序,根據輸入顧客的加油量a,汽油品種b(90、93或97)和服務類型c(m - 自助,e - 協助),計算並輸出應付款。
1)實驗代碼
include<stdio.h>
int main(void)
{
int a,b;
double money,price,z;
char op;
scanf("%d %d %c", &a, &b, &op); switch(b) { case 90:price = 6.95; break; case 93:price = 7.44; break; case 97:price = 7.93; break; } switch(op) { case ‘m‘:z = 0.95; break; case ‘e‘:z = 0.97; break; } money = price*z*a; printf("%.2f",money); return 0;
}
2)設計思路
1.定義(int)汽油品種和加油量,(double)價格,折扣和應付總金額,(char)服務類型
2.使用兩個switch將汽油品種和服務類型進行分類,最後算出應付總金額
3.輸出,返回主函數
3)本題調試中遇到的問題及解決方案
暫無
4)運行結果截圖
7-3 計算天數 (15 分)
本題要求編寫程序計算某年某月某日是該年中的第幾天。
1)實驗代碼
include<stdio.h>
int main()
{
int y,m,d,i,t;
scanf("%d/%d/%d",&y,&m,&d);
t=d;
for(i=1;i<m;i++){
switch(i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
t=t+31;
break;
case 4:
case 6:
case 9:
case 11:
t=t+30;
break;
case 2:
if((y%4==0)&&(y%100!=0)||(y%400==0))
t=t+29;
else
t=t+28;
}
}
printf("%d",t);
return 0;
}
2)設計思路
1.定義總天數t,首先t=d(d為天數)
2.用for循環,用switch分類,30天,31天,再用if判斷2月份,一步步累加
3.輸出總天數
3)本題調試中遇到的問題及解決方案
switch的三種用法會搞混淆
4)運行結果截圖
第九周編程總結