3、编写一个程序,从键盘上输入学生的三门课程成绩,求总成绩和平均成绩。

#include <stdio.h>
int main()
{
	float C,M,E,S,A;
	printf("please input C M E\n");	
    scanf("%f,%f,%f",&C,&M,&E);
    
    S=C+M+E;
    A=(C+M+E)/3.0;
    
    printf("三门课程总成绩S=%0.2f\n三门课程平均成绩A=%0.2f\n",S,A);
    return 0;
}
#include <stdio.h>

#if 1
float CheckSum(float *Course,int CourseNum)
{
	int i;
	float  ScoreSum;
	for(i = 0 ; i<CourseNum ; i++)
		ScoreSum += Course[i];
	return  ScoreSum; 
} 

float CheckAvrg(float *Course,int CourseNum)
{
	float ScoreAvr = 0;
	float ScoreSum = 0;
	ScoreSum = CheckSum(Course,CourseNum);
	printf("课程总成绩:%0.2f\n",ScoreSum);
	ScoreAvr = ScoreSum/CourseNum;
	return ScoreAvr;
}

int Partition(float *Array,int i,int j)
{
	float median;
	median=*(Array+i);
	while(i<j)
	{
		while(i<j&&*(Array+j)>=median)
			j--;//从右向左扫描,直到找到第一个小于median的Array[j]
		*(Array+i)=*(Array+j);
		while(i<j&&*(Array+i)<=median)
			i++;//从左向右扫描,直到找到第一个大于median的Array[i]
		*(Array+j)=*(Array+i);
	}
	*(Array+i)=median;//最后定位基准位置
	return i;
}

float CheckSort(float *Array,int l,int h)
{
	int mid;
	if(l<h)
	{
		mid=Partition(Array,l,h);
		CheckSort(Array,l,mid-1);
		CheckSort(Array,mid+1,h);
	}
	
}

int CheckPass(float *Course,int CourseNum)
{
	int i;
	int NoPass = 0;
	for(i = 0 ; i<CourseNum ; i++)
	{
		if(Course[i]<60.0)
		{
			NoPass++;	
		}		
	}
	printf("不及格课程数:%d\n",NoPass); 
}

int main()
{
	int i,j,CourseNum;
	float Course[18];
	float Cour[18];
	
	printf("请输入课程数量:"); 
	scanf("%d",&CourseNum);
	if(CourseNum<=0||CourseNum>18)
	{
		printf("输入课程数应小于18门!\n");	
		printf("请重新输入课程门数:"); 
		scanf("%d",&CourseNum);	
	}

	printf("请输入课程分数:"); 
	for(i=1;i<=CourseNum;i++)
		scanf("%f",(Cour+i));
	for(i=1;i<=CourseNum;i++)	
		Course[i-1] = Cour[i];
	
	
	printf("计算中......:\n"); 	
	printf("课程平均成绩:%0.2f\n",CheckAvrg(Course,CourseNum));
	CheckPass(Course,CourseNum);
	
	printf("\n课程成绩排序:\n"); 
	CheckSort(Cour,1,CourseNum);
	for(i=CourseNum,j=1;i>=1;i--,j++)
		printf("成绩排名%d: %0.2f\n",j,Cour[i]);

	printf("\n");
	return 0;	
}
#endif
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值