刚下载了《C语言趣味编程》就开始拜读了,看了一个自己感兴趣的例子就把它的代码改了一下。 原题是这样的:
歌星大奖赛
在歌星大奖赛中,有10个评委为参赛的选手 打分,分数为1到100分。选手最后得分为:
去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
- #include<stdio.h>
- void main()
- {
- int integer, i, max, min,sum;
- max=-32768;
- min=32767;
- sum=0;
- for(i=1; i<=10;i++){
- prinf("Input number %d= ",i);
- scanf("%d",&integer);
- sum += integer;
- if(integer>max)max=integer;
- if(integer<min)min=integer;
- }
- printf("Cancled max score : %d/nCancled min score :%d/n",max,min);
- printf("Average score "%d/n",(sum-max-min)/8);
- }
我给改了一下:
- //歌星评分
- //输入10个分数,去掉一个最大值一个最小值,然后求8个分数的平均分
- #include<stdio.h>
- void main()
- {
- int max,min,scoretmp;
- int sum=0;
- printf("input 1 score:/n");
- scanf("%d",&scoretmp);//先初始化一个分数,
- max=min=scoretmp;//将最大值和最小值都初始化成该分数
- for(int i=2; i<=10; i++){
- sum+= scoretmp;
- printf("input %d score:/n",i);
- scanf("%d",&scoretmp);
- if(max<scoretmp)max= scoretmp;
- if(min>scoretmp)min= scoretmp;
- }
- printf("The highest score is %d/n",max);
- printf("The lowest score is %d/n",min);
- printf("The average score is %d/n",(sum-max-min)/8);
- }
这样做的目的是不去用32767和-32769这两个值,,因为int型的最大值和最小值是和机器有关的~