思路:
1、定义数组进行接收分数
2、用循环求最高分,最低分,总值
3、求平均分,输出
#include<stdio.h>
int main(void)
{
int i = 0, val = 0;
int a[100] = {0};
double min = 0, max = 0, num = 0, avg = 0;
// 给数组赋值分数
while(val != -1)
{
scanf("%d", &val);
if(val != -1)
{
a[i] = val;
i++;
}
}
len = i;
min = a[0];
max = a[0];
num = a[0];
//通过循环计算总值,最高最低分数
for(i = 1; i < len; i++)
{
if(max < a[i])
{
max = a[i];
}
if(min > a[i])
{
min = a[i];
}
num += a[i];
}
avg = (num - max - min) / (len - 2);
printf("平均分:%.2f", avg);
return 0;
}
出现的问题:
1、是否把-1接收入数组?
我的处理方法是,用中间值接收,判断中间值不为-1,才接收数组
另外一个可实现的思路,把-1 接受入数组,len的长度不达到-1的长度
2、len的长度如何得到?
在whlie 循环中,设置一个计数器
标签:val,min,max,len,C语言,num,数组,去掉,接收数据 From: https://blog.csdn.net/2302_77901571/article/details/145153895