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 加油~

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