不知道如何在未知个数的自然数中求出最大最小值。m的值需要自己输入,成绩也需要自己输入。
定义一个最大值,一个最小值,输入的时候每次拿输入的值跟这俩比较,如果输入值大于最大值,最大值就赋值为输入的值,如果输入值小于最小值,最小值就赋值为输入的值,这样输入完,最大值,最小值就有了呀
#include <stdio.h>
int main()
{
int n;
int max=0,min=0,sum=0,temp;
scanf("%d",&n);
for(int i=0; i < n; i++ ){
scanf("%d",&temp);
if(i==0){
max=temp;
min=temp;
}
sum=sum+temp;
if(temp>max) max=temp;
if(temp<min) min=temp;
}
printf("最大值为:%d,最小值为%d,平均值为%f",max,min,(sum-max-min)*1.0/(n-2));
return 0;
}
#include <stdio.h>
int main()
{
int s,max,min,sum=0,n=0,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&s);
sum += s;
if(i==0)
max=min=s;
else if(max < s)
max = s;
else if(min > s)
min = s;
}
printf("%.1f",(sum-max-min)/(m-2.0));
}
/*青年歌手参加歌曲大奖赛,有10个评委对她进行打分,
试编程求这位选手的平均得分(去掉一个最高分和一个最低分)
思路:从终端输入10个数并进行求和,两两比较找出最大值和最小值
用总和减去最大值和最小值除8即可得平均值
*/
#include <stdio.h>
int main(int argc, char const *argv[])
{
printf("input:\n");
int i, j, n, t, arr[10];
float sum;
for (n = 0; n < 10; n++)
{
scanf("%d", &arr[n]);
}
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (arr[j] > arr[j + 1])
{
t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
for (int a = 1; a < 9; a++)
{
sum += arr[a];
}
printf("average:%.2f\n", sum / 8);
return 0;
}