c语言 ACM 提交问题
为什么我的代码提交后结果是:OutputLimitExceed代码如下:#include"stdio.h"main(){floatf,t[7],u[7],q,w;intp...
为什么我的代码提交后结果是:Output Limit Exceed
代码如下:#include"stdio.h"
main()
{
float f,t[7],u[7],q,w;
int p,y,i=1;
char m[30],n[30];
while(i!=0)
{
for(p=0;p<7;p++)
scanf("%f",&t[p]);
gets(m);
for(p=0;p<7;p++)
scanf("%f",&u[p]);
gets(n);
for(p=0;p<6;p++)
{
if(t[p]<=t[p+1])
{
y=t[p];
t[p]=t[p+1];
t[p+1]=y;
}
else
continue;
}
for(p=0;p<6;p++)
{
if(t[p]>=t[p+1])
continue;
else
{
y=t[p];
t[p]=t[p+1];
t[p+1]=y;
}
}
for(p=0;p<6;p++)
{
if(u[p]<=u[p+1])
{
y=u[p];
u[p]=u[p+1];
u[p+1]=y;
}
else
continue;
}
for(p=0;p<6;p++)
{
if(u[p]>=u[p+1])
continue;
else
{
y=u[p];
u[p]=u[p+1];
u[p+1]=y;
}
}
printf("%.2f",(t[1]+t[2]+t[3]+t[4]+t[5])/5);
puts(m);
printf("%.2f",(u[1]+u[2]+u[3]+u[4]+u[5])/5);
puts(n);
}
return(0);
}
该如何改? 展开
代码如下:#include"stdio.h"
main()
{
float f,t[7],u[7],q,w;
int p,y,i=1;
char m[30],n[30];
while(i!=0)
{
for(p=0;p<7;p++)
scanf("%f",&t[p]);
gets(m);
for(p=0;p<7;p++)
scanf("%f",&u[p]);
gets(n);
for(p=0;p<6;p++)
{
if(t[p]<=t[p+1])
{
y=t[p];
t[p]=t[p+1];
t[p+1]=y;
}
else
continue;
}
for(p=0;p<6;p++)
{
if(t[p]>=t[p+1])
continue;
else
{
y=t[p];
t[p]=t[p+1];
t[p+1]=y;
}
}
for(p=0;p<6;p++)
{
if(u[p]<=u[p+1])
{
y=u[p];
u[p]=u[p+1];
u[p+1]=y;
}
else
continue;
}
for(p=0;p<6;p++)
{
if(u[p]>=u[p+1])
continue;
else
{
y=u[p];
u[p]=u[p+1];
u[p+1]=y;
}
}
printf("%.2f",(t[1]+t[2]+t[3]+t[4]+t[5])/5);
puts(m);
printf("%.2f",(u[1]+u[2]+u[3]+u[4]+u[5])/5);
puts(n);
}
return(0);
}
该如何改? 展开
展开全部
#include"stdio.h"
main()
{
float f,t[7],u[7],q,w;
int p,y,i=1;
char m[30],n[30];
//这什么题目啊,你代码写得这么乱的
while(scanf("%f",&t[0])!=EOF)//读取文件末尾
{
for(p=1;p<7;p++)
scanf("%f",&t[p]);
gets(m);
for(p=0;p<7;p++)
scanf("%f",&u[p]);
gets(n);
for(p=0;p<6;p++)
{
if(t[p]<=t[p+1])
{
y=t[p];
t[p]=t[p+1];
t[p+1]=y;
}
else
continue;
}
for(p=0;p<6;p++)
{
if(t[p]>=t[p+1])
continue;
else
{
y=t[p];
t[p]=t[p+1];
t[p+1]=y;
}
}
for(p=0;p<6;p++)
{
if(u[p]<=u[p+1])
{
y=u[p];
u[p]=u[p+1];
u[p+1]=y;
}
else
continue;
}
for(p=0;p<6;p++)
{
if(u[p]>=u[p+1])
continue;
else
{
y=u[p];
u[p]=u[p+1];
u[p+1]=y;
}
}
printf("%.2f",(t[1]+t[2]+t[3]+t[4]+t[5])/5);
puts(m);
printf("%.2f",(u[1]+u[2]+u[3]+u[4]+u[5])/5);
puts(n);
}
return(0);
}
main()
{
float f,t[7],u[7],q,w;
int p,y,i=1;
char m[30],n[30];
//这什么题目啊,你代码写得这么乱的
while(scanf("%f",&t[0])!=EOF)//读取文件末尾
{
for(p=1;p<7;p++)
scanf("%f",&t[p]);
gets(m);
for(p=0;p<7;p++)
scanf("%f",&u[p]);
gets(n);
for(p=0;p<6;p++)
{
if(t[p]<=t[p+1])
{
y=t[p];
t[p]=t[p+1];
t[p+1]=y;
}
else
continue;
}
for(p=0;p<6;p++)
{
if(t[p]>=t[p+1])
continue;
else
{
y=t[p];
t[p]=t[p+1];
t[p+1]=y;
}
}
for(p=0;p<6;p++)
{
if(u[p]<=u[p+1])
{
y=u[p];
u[p]=u[p+1];
u[p+1]=y;
}
else
continue;
}
for(p=0;p<6;p++)
{
if(u[p]>=u[p+1])
continue;
else
{
y=u[p];
u[p]=u[p+1];
u[p+1]=y;
}
}
printf("%.2f",(t[1]+t[2]+t[3]+t[4]+t[5])/5);
puts(m);
printf("%.2f",(u[1]+u[2]+u[3]+u[4]+u[5])/5);
puts(n);
}
return(0);
}
更多追问追答
追问
题目是这样的 :测试数据包括多个实例。
每组数据包括7个实数,代表评委们对该选手的评分。紧接着是选手的名字,名字的长度不超过30个字符。
输入直到文件结束。
输出
算出每位选手名字和最终得分,结果保留两位小数。
样例输入
10 10 10 10 10 10 9 xiaoyuanwang
0 0 0 0 0 0 0 beast
样例输出
xiaoyuanwang 10.00
beast 0.00
(他要求是去掉最高分和最低分算平均分
我的代码结果是对的)
追答
恩,你是没有判断文件的结束,按我那样写就对了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Output Limit Exceed
一般是输出过多,原因出在i没有被改变,循环一直没有停止。
一般是输出过多,原因出在i没有被改变,循环一直没有停止。
追问
能具体说下怎么改吗
追答
想办法在循环体内让i最终收敛成0即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-05
展开全部
初始i=1
while(i!=0);
怎么好像是死循环啊?
while(i!=0);
怎么好像是死循环啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询