Day_5 Simple Search_Score System(簡易查分系統)

今天我爲了把前段時間學的知識(選擇語句,分支語句,循環語句,函數,數組等)複習了一遍,寫了一個很簡易的查分系統。用一個數組存放10個學生的成績,然後寫了幾個函數分別來實現打印成績、查看最高分、查看最低分和平均分的函數(主要是想練習使用函數)。通過switch case語句來調用函數。這個程序看似很簡單,但是在寫代碼的過程中也會遇到問題。正如大佬們所說:“好的程序是調試出來的。”在剛剛寫完程序後,我就運行了,雖然沒有語法錯誤,但是從運行結果上很明顯地看出有邏輯錯誤。我打開監視器,輸入變量值一步一步地跟蹤,最終找到了問題所在。之後我又重新運行程序,並把打印的結果儘可能地修改地更美觀了點。此前我也做過在一個數組裏查詢最大最小值,但今天我調整了算法, 儘可能地使代碼更簡潔。以下是我的代碼,若還有可以優化的地方,希望讀者們能指出來。

#include <stdio.h>

void menu()
{
	printf("                    ******************************\n") ;
	printf("                    **********1.顯示成績**********\n") ;   
	printf("                    **********2.  最高分 *********\n") ;   
	printf("                    **********3.  最低分 *********\n") ;  
	printf("                    **********4.  平均分 *********\n") ;
	printf("                    **********5. 退出系統 ********\n") ;
	printf("                    ******************************\n") ;
}

void Show_score(int arr_s[])
{
	int i = 0 ;
	printf("10個學生成績分別是: ") ;
	for(i=0 ; i<10 ; i++)
	{
		printf("%d " , arr_s[i]) ;
	}
	printf("\n") ;
	printf("\n請鍵入你需要操作的選項: ") ;
}

void Max_score(int arr_s[])
{
	int i  = 0 ;
	int max = arr_s[0] ;
	for(i=0 ; i<10 ; i++)
	{
		 max = max > arr_s[i] ? max : arr_s[i] ;
	}
	printf("最高分爲%d\n" , max) ;
	printf("\n請鍵入你需要操作的選項: ") ;
}

void Min_score(int arr_s[])
{
	int i = 0 ;
	int min = arr_s[0] ;
	for(i=0 ; i<10 ; i++)
	{
		 min = min < arr_s[i] ? min : arr_s[i] ;
	}
	printf("最低分爲%d\n" , min) ;
	printf("\n請鍵入你需要操作的選項: ") ;
}

Ave_score(int arr_s[])
{
	int i = 0 ;
	float sum = 0 ;
	for(i=0 ; i<10 ; i++)
	{
		sum += arr_s[i] ;
	}
	printf("平均分爲%f\n" , sum/10.0) ;
	printf("\n請鍵入你需要操作的選項: ") ;
}


int main()
{
	int arr_score[10]= {98 , 95 , 96 , 85 , 73 , 69 , 82 , 74 , 78 , 95} ;//存放學生的成績
	int input = 0 ;
	menu();
	printf("\n歡迎使用查分系統!請根據提示選擇您所需要的操作\n") ;
	printf("\n請鍵入你需要操作的選項: ") ;
	while(1)
	{
		scanf("%d" , &input) ;
	switch (input)
	{
	case 1 : 
		Show_score(arr_score) ;
		break ;
	case 2 : 
		Max_score(arr_score) ;
		break ;
	case 3 :
		Min_score(arr_score) ;
		break ;
	case 4 :
		Ave_score(arr_score) ;
		break ;
	case 5 :
		printf("\n即將退出本系統,感謝使用!\n") ;
		return 0 ;
	default :
		printf("輸入非法,請重新輸入:") ;
	}
	}
	return 0 ;
}

運行結果:
在這裏插入圖片描述
等我學完C語言後,我會將這段代碼再擴充來實現更多的功能!Romeo 加油~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章