c程序基本算法百例之四—歌手大奖赛评分
2011-05-10 10:15
246 查看
#include<stdio.h> #include<math.h> int main() { int integer,i,max,min,sum; max = -32768; //先假设当前最大值为c语言整型数的最小值 min = 32767; //先假设当前最小值为c语言整型数的最大值 sum = 0; //要去累加和值得初值为0 for(i=1;i<=10;i++) { printf("Input number %d=",i); scanf("%d",&integer); //输入评委的评分 sum += integer; //计算总分 if(integer>max)max = integer; //通过比较筛选出其中的最高分 if(integer<min)min = integer; //通过比较筛选出其中的最低分 } printf("canceled max score:%d/ncanceled min score:%d/n",max,min); printf("Average score:%d/n",(sum-max-min)/8); //输出结果 return 0; } /* output: ----------------------------------------------------------------------------- Input number 1=99 Input number 2=97 Input number 3=98 Input number 4=96 Input number 5=91 Input number 6=100 Input number 7=54 Input number 8=98 Input number 9=92 Input number 10=93 canceled max score:100 canceled min score:54 Average score:95 Process returned 0 (0x0) execution time : 25.641 s Press any key to continue. ----------------------------------------------------------------------------- */
思考题:题目条件不变,但考虑同时对评委的评分进行裁判,即在10个评委中找到最公平(既评分最接近平均分)和最不公平(既与平均分的差距最大)的评委,程序应如何实现?
解答:
#include<stdio.h> #include<math.h> int main() { int a[10],b[10],max,min,max1,min1,sum,avr,m,n,i; max = -32768; min = 32767; sum = 0; for(i=1;i<=10;i++) { printf("%d号评委打分=",i); scanf("%d",&a[i]); sum += a[i]; } for(i=1;i<=10;i++) { if(a[i]>max) max = a[i]; if(a[i]<min) min = a[i]; } avr = (sum-max-min)/8; //找出最公平和最不公平的评委: //-------------------------------------------------- for(i=1;i<=10;i++) b[i] = abs(a[i] - avr); max1 = b[1]; min1 = b[1]; m = 1; n = 1; for(i=1;i<=10;i++) { if(b[i]>max1) {max1 = b[i];m = i;} if(b[i]<min1) {min1 = b[i];n = i;} } printf("去掉的最高分:%d/n去掉的最低分:%d/n",max,min); printf("平均分:%d/n",avr); printf("最公平的评委为%d号评委/n",n); printf("最不公平的评委为%d号评委/n",m); return 0; } /* output: -------------------------------------------------------------------- 1号评委打分=86 2号评委打分=65 3号评委打分=76 4号评委打分=86 5号评委打分=78 6号评委打分=86 7号评委打分=45 8号评委打分=98 9号评委打分=29 10号评委打分=45 去掉的最高分:98 去掉的最低分:29 平均分:70 最公平的评委为2号评委 最不公平的评委为9号评委 Process returned 0 (0x0) execution time : 16.469 s Press any key to continue. -------------------------------------------------------------------- */
相关文章推荐
- c程序基本算法百例之五—求最大公约数
- c程序基本算法百例之一—绘制余弦曲线
- c程序基本算法百例之六—高次方数的尾数
- c程序基本算法百例之八—借书方案知多少
- c语言基本算法程序百例之九—杨辉三角形
- c程序基本算法百例之七—阶层尾数零的个数
- c语言基本算法程序百例之十—数值转换
- c程序基本算法百例之三—绘制圆
- [Java基础巩固](0) --- 程序设计基础和基本数据结构, 算法
- 程序的基本算法
- 一个应用单链表基本算法的综合程序
- 一个应用二叉树基本算法的程序
- 一个应用二叉树基本算法的程序 zz
- SVM实现多分类的程序基础工作(三)——基于纠错编码的SVM多类分类算法和基于二叉树的多类SVM算法的基本思想
- 一个应用单链表基本算法的程序
- c程序基本算法百例之二—绘制余弦曲线和直线
- 程序算法艺术与实践:递归策略基本的思想
- 算法是如何影响程序编码方式的 - 基本排序算法
- 编写程序,实现顺序栈的创建、进栈和出栈等基本操作算法。
- C语言算法和三种基本程序结构