| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 843 人关注过本帖
标题:课程设计代码急需高手修改与指正啊!
只看楼主 加入收藏
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
结帖率:88.24%
收藏
已结贴  问题点数:15 回复次数:14 
课程设计代码急需高手修改与指正啊!
[b]大赛评分
   某大赛有n(n>=5)个选手参赛,m(m>=4)个评委依次为参赛的选手评判打分;最高10分,最低0分。统分规则为:每个选手所得的m个评分中,去掉一个最高分,去掉一个最低分,然后平均该选手的最后得分。
    根据n个选手的最后得分从高到低排出名次表,以便确定获奖名单


下面是我的代码及运行结果!

#include<stdio.h>
int main()
{//先写m个评委给一个学生评分
int s[100];//声明评分数组
int i,j; //声明循环变量i,j
int m,n;//声明变量 m:评委的人数,
int max=s[0];
int min=s[0];
float sum=0;
float ave;
int a[100];
float b[100];

//输入m的值
printf("请输入评委人数(最少4人):");
scanf("%d",&m);
while(m<4)
{printf("请输入正确的评委数:");
  scanf("%d",&m);
}

//输入n的值
printf("请输入学生数(最少5人):");
scanf("%d",&n);     
while(n<5)     
{printf("请输入正确的学生数:");
scanf("%d",&n);         
}
     


for(j=1;j<=n;j++)
{//输入各评委的打分            
printf("输入各评委给第%d个学生的打分:",j);
for(i=0;i<m;i++)
scanf("%d",&s[i]);


//求出个评委所打分的最高分和最低分

for(i=0;i<m;i++)
{if(s[i]>max)max=s[i];
if(s[i]<min)min=s[i];
}

//计算选手得分

for(i=0;i<m;i++)
sum=sum+s[i];
sum=sum-max-min;
ave=sum/(n-2);


//输出选手得分并记录

printf("第%d个学生的分数:%.2f\n",j,ave);

a[j]=j;//记录号数
b[j]=ave;//记录分数
}


//下面这部分进行排名
int k;
float t;
for(j=1;j<=n;j++)
{ for(k=1;k<=n-1;k++)
     if(b[j]<b[k+1]){t=b[j]; b[j]=b[k+1];b[k+1]=t;a[j]=k+1;
      printf("第%d名%d号%.2f",j,a[j],b[j]);
  }
}
return 0;   
}

我的问题是:为什么这个代码的计算结果不对,而且每次给每个学生输入同样的的分的出的结果也得不一样的啊,纠结啊!想了好长时间猜把整个框架写完可是错无好多啊,又不知错在哪啊!求高手解惑啊!还有最后的排名也有点混乱啊
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 唏嘘草 于 2011-6-4 19:34 编辑 ]
搜索更多相关主题的帖子: 获奖名单 
2011-06-04 19:31
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
程序代码:
#include<stdio.h>
int main()
{
    float score[7],sum,grade,max,min;
    char name[31];
    int i;
    while(scanf("%f",&score[0])!=EOF)
    {
        max=score[0];
        min=score[0];
        sum=score[0];
        for(i=1;i<7;i++)
        {
            scanf("%f",&score[i]);
            sum+=score[i];
            if(max<score[i])
                max=score[i];
            if(min>score[i])
                min=score[i];
        }
        scanf("%s",name);
        grade=(sum-min-max)/5.0;
        printf("%s %.2f\n",name,grade);
    }
    return 0;
}
懒得看了  给你写了个傻瓜代码

                                         
===========深入<----------------->浅出============
2011-06-04 19:42
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
收藏
得分:0 
回复 2楼 laoyang103
这位大锅,一定要按要求啊,各项输入不符合要提示重新输入,还有多少个学生多少个老师是不确定的,做出来的程序要符合一般情况 而不是特殊情况啊
2011-06-04 19:49
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:5 
回复 3楼 唏嘘草
1.没有初始化
2.逻辑循环有问题。
for(……)
{sum=0;}
2011-06-04 19:54
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
收藏
得分:0 
回复 4楼 hjywyj
这为高手请你稍微细一点说好吗!你你把要修改的写一下好吗
2011-06-04 20:06
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
收藏
得分:0 
回复 4楼 hjywyj
我把SUM写到循环体中了,但是有出错了!最后的排名;又没了
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-06-04 20:14
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
这个用结构体较好
2011-06-04 20:22
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 5楼 唏嘘草
程序代码:
int s[100]={0};//声明评分数组
int i,j; //声明循环变量i,j
int m,n;
int max;
int min;
float sum=0;
float ave;
int a[100];
float b[100];

//输入m的值
printf("请输入评委人数(最少4人):");
scanf("%d",&m);
while(m<4)
{printf("请输入正确的评委数:");
  scanf("%d",&m);
}

//输入n的值
printf("请输入学生数(最少5人):");
scanf("%d",&n);    
while(n<5)    
{printf("请输入正确的学生数:");
scanf("%d",&n);        
}
     


for(j=1;j<=n;j++)
{sum=0;{//输入各评委的打分           
printf("输入各评委给第%d个学生的打分:",j);
for(i=0;i<m;i++)
scanf("%d",&s[i]);

max=s[0];min=s[0];
//求出个评委所打分的最高分和最低分

for(i=0;i<m;i++)
{if(s[i]>max)max=s[i];
if(s[i]<min)min=s[i];
}
//计算选手得分

for(i=0;i<m;i++)
sum=sum+s[i];
sum=sum-max-min;
ave=sum/(n-2);

//输出选手得分并记录

printf("第%d个学生的分数:%.2f\n",j,ave);

a[j]=j;//记录号数
b[j]=ave;//记录分数
}
}

//下面这部分进行排名
int k;
float t;
for(j=1;j<=n;j++)
{ for(k=j;k<=n;k++)
     if(b[j]<b[k]){t=b[j]; b[j]=b[k];b[k]=t;int m=a[j];a[j]=a[k];a[k]=m;
        }
}
for(j=1;j<=n;j++)
printf("第%d名%d号%.2f\n",j,a[j],b[j]);
仅供参考!
2011-06-04 20:25
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
呵呵按要求  你自己填上条件不就行了嘛

                                         
===========深入<----------------->浅出============
2011-06-04 20:27
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
收藏
得分:0 
回复 8楼 hjywyj
--------------------Configuration: 大赛评分修正版 - Win32 Debug--------------------
Compiling...
大赛评分修正版.CPP
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(12) : error C2501: 'printf' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(12) : error C2440: 'initializing' : cannot convert from 'char [27]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(13) : error C2501: 'scanf' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(13) : error C2078: too many initializers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(13) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(14) : error C2143: syntax error : missing ';' before 'while'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(15) : error C2143: syntax error : missing ';' before '{'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(15) : error C2447: missing function header (old-style formal list?)
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(20) : error C2501: 'printf' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(20) : error C2374: 'printf' : redefinition; multiple initialization
        F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(12) : see declaration of 'printf'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(20) : error C2440: 'initializing' : cannot convert from 'char [25]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(21) : error C2501: 'scanf' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(21) : error C2374: 'scanf' : redefinition; multiple initialization
        F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(13) : see declaration of 'scanf'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(21) : error C2078: too many initializers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(21) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(22) : error C2143: syntax error : missing ';' before 'while'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(23) : error C2143: syntax error : missing ';' before '{'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(23) : error C2447: missing function header (old-style formal list?)
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2143: syntax error : missing ';' before 'for'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2143: syntax error : missing ')' before ';'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2143: syntax error : missing ';' before '<='
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2501: 'j' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2086: 'j' : redefinition
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2143: syntax error : missing ';' before '<='
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2143: syntax error : missing ';' before '++'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2501: 'j' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2086: 'j' : redefinition
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2143: syntax error : missing ';' before '++'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(29) : error C2059: syntax error : ')'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(30) : error C2143: syntax error : missing ';' before '{'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(30) : error C2447: missing function header (old-style formal list?)
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2143: syntax error : missing ';' before 'for'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2143: syntax error : missing ')' before ';'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2143: syntax error : missing ';' before '<='
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2501: 'j' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2086: 'j' : redefinition
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2143: syntax error : missing ';' before '<='
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2143: syntax error : missing ';' before '++'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2501: 'j' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2086: 'j' : redefinition
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2143: syntax error : missing ';' before '++'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(61) : error C2059: syntax error : ')'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(62) : error C2143: syntax error : missing ';' before '{'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(62) : error C2447: missing function header (old-style formal list?)
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2143: syntax error : missing ';' before 'for'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2143: syntax error : missing ')' before ';'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2143: syntax error : missing ';' before '<='
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2501: 'j' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2086: 'j' : redefinition
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2143: syntax error : missing ';' before '<='
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2143: syntax error : missing ';' before '++'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2501: 'j' : missing storage-class or type specifiers
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2086: 'j' : redefinition
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2143: syntax error : missing ';' before '++'
F:\我的课件\VC++\MSDev98\MyProjects\大赛评分修正版\大赛评分修正版.CPP(66) : error C2059: syntax error : ')'
执行 cl.exe 时出错.

大赛评分修正版.exe - 1 error(s), 0 warning(s)
2011-06-04 20:48
快速回复:课程设计代码急需高手修改与指正啊!
数据加载中...
 
   



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

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