经典的题目,这个题目可以很好的训练分支语句和循环语句。
我自己就是拿这个题目复习这两部分的。
现在让我把简单的逻辑分享给大家。
我们先把题看完,应该你想到这个题要用循环语句,而且循环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;
}