学习C语言程序开发范例
实例029 模拟比赛打分
首先从键盘中输入选手人数,然后输入对每个选手的打分情况。这里假设裁判有5位,在输入完以上要求内容后,输出每个选手的成绩。
假设有五位选手,每位裁判对每位选手的打分已知,请编程输出每个选手的成绩。
#include <string.h>
#include <stdio.h>
main()
{
int i, j = 1, n;
float a[100], b[100], sum = 0;
printf("\nEnter the number of players:\n");
scanf("%d", &n); /*从键盘中输入选手的人数*/
for (i = 1; i <= n; i++)
{
printf("now player %d\n", i);
printf("please input score:\n");
for (; j < 5 * n + 1; j++)
{
scanf("%f", &a[j]); /*输入5个裁判每个裁判所给的分数*/
sum += a[j]; /*求出总分数*/
if (j % 5 == 0) /*一位选手有5个裁判给打分*/
break;
}
b[i] = sum; /*将每个选手的总分存到数组b中*/
sum = 0; /*将总分重新置0*/
j++; /*j自加*/
}
j = 1;
printf("player judgeA judgeB judgeC judgeD judgeE total\n");
for (i = 1; i <= n; i++)
{
printf("player %d", i); /*输出几号选手*/
for (; j < 5 * n + 1; j++)
{
printf("%8.1f", a[j]); /*输出裁判给每个选手对应的分数*/
if (j % 5 == 0)
break;
}
printf("%8.1f\n", b[i]); /*输出每个选手所得的总成绩*/
j++;
}
}
运行结果:
- 根据本实例,可以举一反三,在本实例的基础上改进程序,即去掉每个选手的最高分和最低分,计算出选手的平均得分;输入学生3门功课成绩,并找出每门功课的最高分及不及格人数。
实例030 对调最大与最小数位置
从键盘中输入一组数据,找出这组数据中最大数与最小数,将最大数与最小数位置互换,将互换后的这组数据再次输出。
本实例的主要思路为:首先是要确定最大数与最小数的具体位置,将a[0]赋给min,用min和数组中其他元素比较,有比min小的,则将这个较小的值赋给min,同时将其所在位置赋给j,当和数组中元素均比较一次后,此时j中存放的就是数组中最小元素所在的位置。最大元素位置的确定同最小元素。当确定具体位置后将这两个元素位置互换,最后将互换后的数组输出。
#include<stdio.h>
main()
{
int a[20], max, min, i, j, k, n;
printf("please input the number of elements:\n")