1. 程式人生 > 其它 >公式計算 、if語句 、switch語句, 選擇結構例題, if 、else if 、else 的正確使用,溫度轉換、分段函式求值、成績評定題型 ,新手程式設計入門 基礎鞏固學習C語言 習題

公式計算 、if語句 、switch語句, 選擇結構例題, if 、else if 、else 的正確使用,溫度轉換、分段函式求值、成績評定題型 ,新手程式設計入門 基礎鞏固學習C語言 習題

技術標籤:演算法c語言程式語言

兩個問題:數學公式計算(題目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;
 } 

注意:

  1. F和c都為浮點數,要用浮點型進行定義,最開始做的時候我用的float,但看到所有的題解都用的double型,我百思不得其解,最後才發現128華氏度僅為53.33333333攝氏度,明顯在float的範圍內是不夠用的,所以我們使用範圍更大的double型。
  2. 數學公式與C語言程式碼的轉換。
  3. %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);
 }

注意:

  1. x取值範圍變成程式碼的改寫。
  2. 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;
			 }
	 }

程式碼簡單清晰,省時省力。

注意:

  1. switch中僅能進行判斷是與否,不能通過邏輯表示式判斷,如果進入的x和case後面的能夠對上號了,那就進行後續語句,所以對成績進行了除以10的處理。
  2. default與else差不多的意思和使用方式。
  3. break必不可少,找到相應部位後及時跳出。