公式計算 、if語句 、switch語句, 選擇結構例題, if 、else if 、else 的正確使用,溫度轉換、分段函式求值、成績評定題型 ,新手程式設計入門 基礎鞏固學習C語言 習題
阿新 • • 發佈:2021-01-21
兩個問題:數學公式計算(題目1)和選擇結構(題目2、3)
題目1:
輸入一個華氏溫度,要求輸出攝氏溫度。公式為 c=5(F-32)/9,取2位小數。
例如
輸入:-40
輸出:c=-40.00
程式碼如下:
#include<stdio.h>
int main()
{
double F,c;
scanf("%lf",&F);
c=5*(F-32)/9;
printf("c=%.2lf",c);
return 0;
}
注意:
- F和c都為浮點數,要用浮點型進行定義,最開始做的時候我用的float,但看到所有的題解都用的double型,我百思不得其解,最後才發現128華氏度僅為53.33333333攝氏度,明顯在float的範圍內是不夠用的,所以我們使用範圍更大的double型。
- 數學公式與C語言程式碼的轉換。
- %m.nf中,m表示總寬度 (可省略),n表示精度,即保留到小數點後幾位。此題保留2位小數,即為%.2lf。
題目2:
對分段函式求值,輸入x,輸出y。
程式碼如下:
#include<stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
if (x<1)
{ y=x;}
else if(1<=x&&x<10)
{y=2*x-1;}
else
{y=3*x-11;}
printf("%d",y);
}
注意:
- x取值範圍變成程式碼的改寫。
- if 、else if 、else 的正確使用。
if 、else if 、else 的正確使用:
if(條件1)
如果條件1為真,執行這裡;(條件為真才執行)
else if(條件2)
否則,當條件2為真執行這裡。(當條件1不為真,條件2為真執行這裡)
else
條件1,條件2都不為真,執行這裡
題目3:
(成績評定)給出一百分制成績,要求輸出成績等級‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上為A,80-89分為B,70-79分為C,60-69分為D,60分以下為E。
輸入:一個整數0-100以內
輸出:一個字元,表示成績等級
程式碼如下:
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
if(x<=100&&x>=0)
{
if(x>=90)
{
printf("A");
}
else if(x>=80&&x<=89)
{
printf("B");
}
else if(x>=70&&x<=79)
{
printf("C");
}
else if(x>=60&&x<=69)
{
printf("D");
}
else
{
printf("E");
}
}
}
上述方式很簡單易懂,但很麻煩,這裡的巢狀顯然很煩瑣且易漏。
用switch語句對此進行優化
程式碼如下:
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
x=x/10;
if(x<=10&&x>=0)
switch(x)
{
case 10:
case 9:
printf("A"); break;
case 8:
printf("B"); break;
case 7:
printf("C"); break;
case 6:
printf("D"); break;
default:
printf("E"); break;
}
}
程式碼簡單清晰,省時省力。
注意:
- switch中僅能進行判斷是與否,不能通過邏輯表示式判斷,如果進入的x和case後面的能夠對上號了,那就進行後續語句,所以對成績進行了除以10的處理。
- default與else差不多的意思和使用方式。
- break必不可少,找到相應部位後及時跳出。