某大赛共有7位评委,记分规则为:按百分制记分,去掉一个最高分和一个最低分,再求平均分。试设计一个计分程序,输入7位评委的评分,计算输出选手的平均得分(精确到1位小数)。

经典的题目,这个题目可以很好的训练分支语句和循环语句。

我自己就是拿这个题目复习这两部分的。

现在让我把简单的逻辑分享给大家。

我们先把题看完,应该你想到这个题要用循环语句,而且循环7次。

然后看到输入7位评委的评分的时候是不是有很多兄弟想到直接定7个变量;如果这样那你的代码会很繁杂,这里我们可以用数组来表示。(以为题目要保留小数,所以要用float类型来定义数组a)

float a[7] = { 0 }
for (i = 1; i <= 7; i++)
	{
		printf("输入第%d次分数",i);
		scanf("%f", &a[i]);
	}

看到了去掉一个最高分和一个最低分,就能想到要把这7个数排序,从大到小或者从小到大。如果按照最原始的一个一个排那这个代码会很麻烦;我们可以想一下:每次比较是两个数比较,那我们是不是可以用个循环语句来表示。(如果你是用的数组定义上面7个数的话)

for (i = 1; i <= 7; i++)
	{
		if (a[i] > a[i + 1])
		{
			t = a[i];
			a[i] = a[i + 1];
			a[i + 1] = t;
		}
	}

然后我们可以直接加上中间的5个数

for (i = 2; i <= 6; i++)
	{
		x += a[i];
	}

看到这我相信兄弟们应该都看懂了,我直接展示全部代码。

#include<stdio.h>



int main()
{	
	float a[7] = { 0 },t;
	float x = 0;
	float y = 0;
	int i;
	for (i = 1; i <= 7; i++)
	{
		printf("输入第%d次分数",i);
		scanf("%f", &a[i]);
	}
	for (i = 1; i <= 7; i++)
	{
		if (a[i] > a[i + 1])
		{
			t = a[i];
			a[i] = a[i + 1];
			a[i + 1] = t;
		}
	}
	for (i = 2; i <= 6; i++)
	{
		x += a[i];
	}
	y = x / 5;
	printf("平均成绩:%f\n", y);
	return 0;
}

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值