| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 927 人关注过本帖
标题:求高手看看我的程序错在哪里了啊!
只看楼主 加入收藏
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
结帖率:88.24%
收藏
已结贴  问题点数:20 回复次数:26 
求高手看看我的程序错在哪里了啊!
程序代码:
#include<stdio.h>
int main()
{
int s[100];//声明评分数组
int i,j; //声明循环变量i,j
int m,n;//声明变量 m:评委的人数,
int max=s[0];
int min=s[0];
float sum;
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=0;
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-8 18:22 编辑 ]
2011-06-08 18:21
jinzhu0505
Rank: 2
等 级:论坛游民
帖 子:24
专家分:35
注 册:2010-10-16
收藏
得分:2 
n没有初值,会出错,输入给n的值再编译时会出错
2011-06-08 20:30
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:2 
看的我一头雾水

                                         
===========深入<----------------->浅出============
2011-06-08 21:46
ytmyh
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2010-8-13
收藏
得分:2 
数组s 没初始化 特别是 s[0];  max,min 是随机的数
2011-06-08 21:58
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
收藏
得分:2 
运行没错结果不对往往都是代码编写问题
可以使用编译器在代码大致会出现问题的地方设断点调试。
2011-06-08 22:09
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:2 
太乱了,从新做一次

//输入n的值
printf("请输入学生数(最少5人):");
scanf("%d",&n);     
while(n<5)             //这句明显是个死循环,而且从程序可以看出n值很重要,就应该来一个for循环
{printf("请输入正确的学生数:");
scanf("%d",&n);         
}
//计算选手得分

for(i=0;i<m;i++)
sum=0;
sum=sum+s[i];
sum=sum-max-min;
ave=sum/(n-2);
//这句括号呢,很明显的错误吗


多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2011-06-08 22:13
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
收藏
得分:0 
回复 2楼 jinzhu0505
我给n赋初值0但是结果是一样的!顺便问一下为什么要赋初值?????
2011-06-08 22:16
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
收藏
得分:0 
回复 4楼 ytmyh
是的,自己写的东西,有时候就就是忘掉一些东西,完了在找就不易发现错误了!看到了!
2011-06-08 22:19
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
收藏
得分:0 
回复 6楼 ouyangouyang
括号错在哪
2011-06-08 22:25
唏嘘草
Rank: 2
等 级:论坛游民
帖 子:128
专家分:93
注 册:2011-6-4
收藏
得分:0 
回复 6楼 ouyangouyang
怎么是死循环啊,不是当输入的数不满足条件这个条件就不再执行了吗?
2011-06-08 22:32
快速回复:求高手看看我的程序错在哪里了啊!
数据加载中...
 
   



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

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