求C语言程序的简单解题思路

来源:百度知道 编辑:UC知道 时间:2024/05/18 19:04:31
10个选手6个评委对他们评比 ,每个选手得分去掉最高分和最底分各一个,最后得分委剩下分数的平均分,求:每位选手最后得分。
程序我已经有了,但是需要简单的解题思路,请哪位高手给出.
#include <stdio.h>
#include <stdlib.h>
struct xs{
int result;
int score[6];
};
int rand_init(struct xs * axs)
{
int i;
axs->result=0;
for(i=0;i<6;i++)
{
axs->score[i]=rand()%100;
}
return 0;
}
int compute_cj(struct xs * axs)
{
int i;
int position_zg=0;
int position_zd=0;
for(i=1;i<6;i++)
{
if(axs->score[i]>axs->score[position_zg])
{
position_zg=i;
}
}
for(i=1;i<6;i++)
{
if(axs->score[i]<axs->score[position_zd])
{
position_zd=i;
}
}
axs->score[position_zg]=0;
axs->score[position_zd]=0;
for(i=0;i<6;i++)
{
axs->result=axs->result+axs->score[i];
}
后面的就不写了,请大家按这个程序给个思路吧

定义一个6×10的二维数组就可以了

把源程序帖出来好吗
我想看看
学习。..
没想到。..
数学居然跟不上来了
...
数组..
还没用熟练..汗
谁把程序写出来看看
...

其实不用2维数组,定2个数组
A[10]用来记录评委的评分
B[6] 用来对应计算后每个选手的得分。

A[10]内部比较大小(冒泡法,筛选法等等随便) 去掉最高和最低分,然后计算平均分 后给B[6] 。然后A[10]清除数据重新记录下以个选手的评分。
用B[6]输出各个选手的得分。

10个选手做10次循环,每次循环时输入6个评分,用一个数组记录
写3个函数,函数sum求n个数的和,函数max求n个数的最大数,函数min求n个数的最小数
(sum-max-min)/4得平均分
或者直接写一个求平均分的avg函数也可以

/*题目5:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
*/
#include <stdio.h>
void main()
{
int nian , yue , ri ;

int wb = 0 ;

printf("请输入你需要的时间,使用-分割:\n");

scanf("%d-%d-%d", &nian , &yue , &ri );

switch(yue)
{
case 12:
wb += 30;
case 11:
wb += 31;
case 10:
wb += 30;
case 9:
wb += 31;
case 8: