#include "stdio.h"const int LEN=30,M=100,N=100typedef struct { int num//抽签号码 char name[LEN]//姓名 float score//得分 } playerplayer players[M]//
歌手信息int a[M][N]//
评委打分信息int m,n//歌手和评委数量//输入歌手信息和评委打分信息void input(void){ int i,jprintf("歌手数量:") scanf("%d",&m)printf("评委数量:") scanf("%d",&n) for(i=0i<mi++) { players[i].num=i+1 printf("第%d个歌手的姓名:",i+1) scanf("%d",&players[i].name) printf("第%d个歌手的评委打分:",i+1) for(j=0j<nj++) {scanf("%d",&a[i][j]) } }}//求平均值(去掉一个最高分,去掉一个最低高分,求出其余n-2个分数的平均值 void calculate(void){ float max,minint i,j for(i=0i<mi++) { max=min=players[i].score=a[i][0] for(j=1j<nj++) {players[i].score+=a[i][j] if(max<a[i][j]){ max=a[i][j] }if(min>a[i][j]){ min=a[i][j] } } if(n>2) {players[i].score=(players[i].score-max-min)/(n-2) } else if(n>0) {players[i].score/=n } } }//对各个选手的得分,用冒泡法排序 //如果用快速排序或堆排序,把这段改写一下就行了void sort(void){ int i,jfor(i=0i<m-1i++) { for(j=m-1j>ij--) {if(players[j].score>players[j-1].score){ player tmptmp=players[j]players[j]=players[j-1]players[j-1]=tmp } } } }//显示所有原始数据void show_origin(void){ int i,jprintf("\n")for(i=0i<mi++) { printf("抽签号码:%d ",players[i].num) printf("姓名:%d ",players[i].name) printf("评委打分:") for(j=0j<nj++) {printf("%d ",a[i][j]) } printf("\n")} }//显示所有歌手的信息 void show_player(void){ int iprintf("\n")for(i=0i<mi++) { printf("抽签号码:%d ",players[i].num) printf("姓名:%d ",players[i].name) printf("得分:%f\n",players[i].score) } }//显示获奖歌手的信息 int main() { input()show_origin()calculate()show_player()sort()return 0}#include <stdio.h>
int main()
{
float x[8]={9.2,9.5,9.0,8.9,9.3,9.5,9.1,9.0}
float max, min
int i
float avg = 0
max = min = x[0]
for (i = 0i <8i++)
{
if (x[i] >max)
{
max = x[i]
}
if (x[i] <min)
{
min = x[i]
}
avg += x[i]
}
avg = (avg - max - min) / 6
printf("the avrage sorce is: %f.\n", avg)
return 0
}
#include <stdio.h>
void bubbleSort(int a[])
int main(void)
{
int a[9] = {0}, i = 0
float aver = 0.0
printf("请9位评委依次打分:")
for(i = 0i <9i++)
scanf("%d", &a[i])
bubbleSort(a)
for(i = 1i <8i++)
aver += a[i]
aver /= 7
printf("平均分为:%f\n", aver)
return 0
void bubbleSort(int a[])
int i = 0, j = 0, temp = 0
for(i = 0i <8i++)
for(j = 0j <8 - ij++)
if(a[j] >a[j + 1])
temp = a[j]
a[j] = a[j + 1]
a[j + 1] = temp
}
数组声明
在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。
数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。
以上内容参考:百度百科-数组
评论列表(0条)