#include stdio.h
创新互联专注于库伦网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供库伦营销型网站建设,库伦网站制作、库伦网页设计、库伦网站官网定制、小程序开发服务,打造库伦网络公司原创品牌,更为您提供库伦网站排名全网营销落地服务。
void Input(float score[ ],int n)
{
int i ;
for (i = 0; i n; i ++) {
printf("请输入第%d个裁判的分数:",i + 1);
scanf("%f",score[i]);
}
}
float Cal_ave(float score[],int n,float *max,float *min)
{
float average = 0.0, sum = 0.0;
int i;
*max = *min = score[0];
for (i = 0; i n; i ++) {
if (*max score[i]) {
*max = score[i];
}
if (*min score[i]) {
*min = score[i];
}
sum += score[i];
}
sum = sum - *max - *min;
average = sum / (n - 2);
return average;
}
int main(void)
{
float score[10];
float max, min, last;
Input(score, 10);
last = Cal_ave(score, 10, max, min);
printf("最高得分为:%.2f最低得分为:%.2f最终分为:%.2f",max, min, last);
return 0;
}
用结构体比较方便易懂,我用结构体帮你做了一下,你可以看一看,可以运行的,我试过了。
#includestdio.h
#define N 4
#define M 5
struct student//建立学生数据结构体
{
char name[15];
float score[M];
float ave;
}stu[N];
void average(struct student stu[])//求平均成绩函数
{
int i,j,k;
float t;
for(i=0;iN;i++)
{
for(j=1;jM;j++)//冒泡排序将5个评委评分从低到高排列,然后取中间的评分求平均值。
for(k=0;kM-j;k++)
if(stu[i].score[j]stu[i].score[j+1])
{
t=stu[i].score[j];
stu[i].score[j]=stu[i].score[j+1];
stu[i].score[j+1]=t;
}
for(j=1;jM-1;j++)//去掉最高和最低分后求平均分
{
stu[i].ave+=stu[i].score[j];
}
stu[i].ave/=M-2;
}
}
void sort(struct student stu[])//排序函数
{
int i,j;
struct student temp;
for(i=1;iN;i++)//冒泡排序法
for(j=0;jN-i;j++)
if(stu[j].avestu[j+1].ave)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
main()
{
int i,j;
for(i=0;iN;i++)//输入学生数据
{
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
for(j=0;jM;j++)
{
printf("请输入该生第%d个评委的评分:",j+1);
scanf("%f",stu[i].score[j]);
}
}
average(stu);//执行函数
sort(stu);
printf("\n按平均成绩逆序输出为:\n");//逆序打印数据
printf("姓名 \t成绩\n");
for(i=0;iN;i++)
printf("%s \t%.2f\n",stu[i].name,stu[i].ave);
}
希望可以帮到你,呵呵
求绝对值:
#includestdio.h
#include "stdafx.h"
void main()
{
int a,b,t;
int fun(int a,int b);
printf("请输入a和b的值:");
scanf("%d%d",a,b);
t=fun(a,b);
printf("%d和%d之差的绝对值为:%d\n",a,b,t);
}
int fun(int a,int b)
{ int t;
t=a-b;
if(t0) t=t-2*t;
return t;
}
研究下