#include stdio.h
創(chuàng)新互聯(lián)專注于庫(kù)倫網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供庫(kù)倫營(yíng)銷型網(wǎng)站建設(shè),庫(kù)倫網(wǎng)站制作、庫(kù)倫網(wǎng)頁(yè)設(shè)計(jì)、庫(kù)倫網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造庫(kù)倫網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供庫(kù)倫網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
void Input(float score[ ],int n)
{
int i ;
for (i = 0; i n; i ++) {
printf("請(qǐng)輸入第%d個(gè)裁判的分?jǐn)?shù):",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;
}
用結(jié)構(gòu)體比較方便易懂,我用結(jié)構(gòu)體幫你做了一下,你可以看一看,可以運(yùn)行的,我試過(guò)了。
#includestdio.h
#define N 4
#define M 5
struct student//建立學(xué)生數(shù)據(jù)結(jié)構(gòu)體
{
char name[15];
float score[M];
float ave;
}stu[N];
void average(struct student stu[])//求平均成績(jī)函數(shù)
{
int i,j,k;
float t;
for(i=0;iN;i++)
{
for(j=1;jM;j++)//冒泡排序?qū)?個(gè)評(píng)委評(píng)分從低到高排列,然后取中間的評(píng)分求平均值。
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[])//排序函數(shù)
{
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++)//輸入學(xué)生數(shù)據(jù)
{
printf("請(qǐng)輸入第%d個(gè)學(xué)生的姓名:",i+1);
scanf("%s",stu[i].name);
for(j=0;jM;j++)
{
printf("請(qǐng)輸入該生第%d個(gè)評(píng)委的評(píng)分:",j+1);
scanf("%f",stu[i].score[j]);
}
}
average(stu);//執(zhí)行函數(shù)
sort(stu);
printf("\n按平均成績(jī)逆序輸出為:\n");//逆序打印數(shù)據(jù)
printf("姓名 \t成績(jī)\n");
for(i=0;iN;i++)
printf("%s \t%.2f\n",stu[i].name,stu[i].ave);
}
希望可以幫到你,呵呵
求絕對(duì)值:
#includestdio.h
#include "stdafx.h"
void main()
{
int a,b,t;
int fun(int a,int b);
printf("請(qǐng)輸入a和b的值:");
scanf("%d%d",a,b);
t=fun(a,b);
printf("%d和%d之差的絕對(duì)值為:%d\n",a,b,t);
}
int fun(int a,int b)
{ int t;
t=a-b;
if(t0) t=t-2*t;
return t;
}
研究下