标题:[求助]完不成的作业,个位大大来帮我呀
只看楼主
leelonely
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-5
 问题点数:0 回复次数:9 
[求助]完不成的作业,个位大大来帮我呀
C语言: (可用任何类型的C语言编译软件,如C++,Turbo C,VC等等)
题1.
M个歌手,N个评委,对于每个歌手,在评委的打分中,去除一个最高分,去除一个最低分后,按照其余评委的总分降序排名。
要求:利用文件。
搜索更多相关主题的帖子: 作业 评委 C语言 歌手 
2007-04-05 10:47
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
得分:0 
我的想法是利用二维数组a[i][j],i为选手,j为评分
对j进行排序,从而踢掉最高分与最低分,然后求和,将总和付给数组b[i]

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2007-04-05 11:01
yelang7
Rank: 1
等 级:新手上路
威 望:1
帖 子:265
专家分:0
注 册:2006-11-3
得分:0 

楼上的想法和我一样的,就这么简简单单.


想象和行动一致,做最棒的 IT 人. http://yelang7.
2007-04-05 11:21
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
得分:0 
#include <stdio.h>
#include <conio.h>
#define SINGER_NUM 10 /*歌手个数*/
#define JUDGE_NUM 10 /*评委个数*/
int getScore(int JUDGE_Score[]); /*给出每个评委的分数得到歌手的分数*/
int main(void)
{
int SINGER_Score[SINGER_NUM]; /*每个运动员得分*/
int JUDGE_Score[JUDGE_NUM]; /*每个评委给出的分数*/
int i;
int j;

clrscr();
/*分别给每个歌手给分*/
for(i=0;i<SINGER_NUM;i++)
{
printf("请给歌手 %d 给分\n",i);
for(j=0;j<JUDGE_NUM;j++)
scanf("%d ",&JUDGE_Score[j]);
SINGER_Score[i]=getScore(JUDGE_Score);
}

/*排序*/
.../*由于时间问题,最后的排序工作留给LZ完成*/


getch();
}
int getScore(int JUDGE_Score[])
{
int total=0;
int min=JUDGE_Score[0],max=JUDGE_Score[0];
int i;
for(i=0;i<JUDGE_NUM;i++)
{
total+=JUDGE_Score[i];
if(min>JUDGE_Score[i])
min=JUDGE_Score[i];
if(max<JUDGE_Score[i])
max=JUDGE_Score[i];
}
return (total-min-max);
}

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-04-05 11:51
leelonely
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-5
得分:0 
回复:(neverTheSame)#include #inc...

非常感谢楼上几位大哥,我是新手,希望能在详细点。

2007-04-05 13:17
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
得分:0 
回复:(neverTheSame)#include #inc...
利用文件哦...

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-05 13:24
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
得分:0 

#include <stdio.h>
#include <conio.h>
#define SINGER_NUM 5 /*歌手个数*/
#define JUDGE_NUM 5 /*评委个数*/
typedef struct
{
int score; /*分数*/
int num; /*歌手编号*/
}SINGER_Struct;
int getScore(int JUDGE_Score[]); /*给出每个评委的分数得到歌手的分数*/
int main(void)
{
SINGER_Struct SINGER[SINGER_NUM]; /*每个运动员得分*/
SINGER_Struct temp;
int JUDGE_Score[JUDGE_NUM]; /*每个评委给出的分数*/
int i;
int j;
FILE *pFile=NULL; /*声明一个文件指针*/

clrscr(); /*清屏*/
/*分别给每个歌手给分*/
for(i=0;i<SINGER_NUM;i++)
{
printf("请给歌手 %d 给分\n",i+1);
SINGER[i].num=i+1; /*歌手号是从1开始*/
for(j=0;j<5;j++) /*每个评委对歌手给分*/
scanf("%d",&JUDGE_Score[j]);
SINGER[i].score=getScore(JUDGE_Score);/*计算出歌手的得分*/
}

/*利用冒泡排序算法对歌手分数排序*/
for(i=SINGER_NUM-1;i>0;i--)
{
for(j=0;j<i;j++)
{
if(SINGER[j].score<SINGER[j+1].score)
{
temp=SINGER[j];
SINGER[j]=SINGER[j+1];
SINGER[j+1]=temp;
}
}
}

/*打开一个文件,并把歌手从最高分到最低分写入文件*/
pFile=fopen("SINGER.txt","w");
for(i=0;i<SINGER_NUM;i++)
{
fprintf(pFile,"歌手%d 的分数: %d\n",SINGER[i].num,SINGER[i].score);
}

/*暂停*/
getch();
/*关闭文件*/
fclose(pFile);
return 0;
}
int getScore(int JUDGE_Score[])
{
int total=0;
int min=JUDGE_Score[0],max=JUDGE_Score[0];
int i;
for(i=0;i<JUDGE_NUM;i++)
{
total+=JUDGE_Score[i];
if(min>JUDGE_Score[i])
min=JUDGE_Score[i];
if(max<JUDGE_Score[i])
max=JUDGE_Score[i];
}
return (total-min-max);
}
/*刚好有时间,把没有做的代码,写一下*/


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-04-06 00:24
wuwei168668
Rank: 1
等 级:新手上路
帖 子:154
专家分:0
注 册:2007-3-11
得分:0 
楼上好牛!
羡慕。。。。

学C语言难得过老外学用中国的筷子吗?
2007-04-06 00:27
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
得分:0 
7楼的写的真不错,学习

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-04-06 09:23
leelonely
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-5
得分:0 
回复:(leelonely)[求助]完不成的作业,个位大大来帮...

帮我看一下
#include <iostream>
#include <fstream>
using namespace std;
typedef struct singer
{
double score;
int index;
}singer;
double sor(double *pn,int n,double sum)
{
double max,min;
max=min=pn[0];
for(int i=1;i<n;i++)
{
if(max<pn[i])
max=pn[i];
if(min>pn[i])
min=pn[i];
}
sum=sum-max-min;
return sum;
}
int swap(singer *a,singer *b)
{
singer temp=*a;
*a=*b;
*b=temp;
return 1;
}
void main()
{
int m,n,i,temp;
double sum=0;
cout<<"输入歌手数目"<<endl;
cin>>m;
cout<<"输入裁判数目"<<endl;
cin>>n;
singer *pm=new singer[m];
double *pn=new double[n];
for(i=0;i<m;i++)
{
cout<<"请给"<<i+1<<"号歌手打分"<<endl;
for(int j=0;j<n;j++)
{
cout<<j+1<<"号裁判打分为:"<<endl;
cin>>pn[j];
sum+=pn[j];
}
temp=sor(pn,n,sum);
sum=0;
pm[i].score=temp;
pm[i].index=i;
}
for(i=0;i<m;i++)
{
cout<<pm[i].index+1<<"号歌手的总分是:"<<pm[i].score<<endl;
}
for(i=1;i<m;i++)
{
for(int j=0;j<m-i;j++)
{
if(pm[j].score<pm[j+1].score)
{
swap(pm[j],pm[j+1]);
}
}

cout<<"结果如下:"<<endl;
for(i=0;i<m;i++)
{
cout<<"第"<<i+1<<"名为: "<<pm[i].index+1<<"号歌手,"<<
"去掉一个最高分,去掉一个最低分,他的总分是: "<<pm[i].score<<endl;
}
ofstream outfile("sing.txt");
for(i=0;i<m;i++)
{
outfile<<"第"<<i+1<<"名为: "<<pm[i].index+1<<"号歌手,"<<
"去掉一个最高分,去掉一个最低分,他的总分是: "<<pm[i].score<<endl;
}
outfile.close();

cout<<"上述结果已成功写入文件sing.txt中"<<endl;
system("PAUSE");
}

2007-04-06 11:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-129386-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031412 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved