用c语言编写含有数组的程序,9个评委给某选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分

如题所述

#include <stdio.h>

void bubbleSort(int a[]);

int main(void)

{

int a[9] = {0}, i = 0;

float aver = 0.0;

printf("请9位评委依次打分:");

for(i = 0; i < 9; i++)

scanf("%d", &a[i]);

bubbleSort(a);

for(i = 1; i < 8; i++)

aver += a[i];

aver /= 7;

printf("平均分为:%f\n", aver);

return 0;

void bubbleSort(int a[])

int i = 0, j = 0, temp = 0;

for(i = 0; i < 8; i++)

for(j = 0; j < 8 - i;j++)

if(a[j] > a[j + 1])

temp = a[j];

a[j] = a[j + 1];

a[j + 1] = temp;

}

数组声明

在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。

数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

以上内容参考:百度百科-数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-10
#include <stdio.h>

void bubbleSort(int a[]);

int main(void)
{
int a[9] = {0}, i = 0;
float aver = 0.0;
printf("请9位评委依次打分:");
for(i = 0; i < 9; i++)
scanf("%d", &a[i]);
bubbleSort(a);
for(i = 1; i < 8; i++)
aver += a[i];
aver /= 7;
printf("平均分为:%f\n", aver);
return 0;
}

void bubbleSort(int a[])
{
int i = 0, j = 0, temp = 0;
for(i = 0; i < 8; i++)
{
for(j = 0; j < 8 - i;j++)
{
if(a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}本回答被网友采纳
第2个回答  2016-11-10
错了
相似回答