杭电2023 http://acm.hdu.edu.cn/showproblem.php?pid=2023

专业排名2023-03-16 15:34:13admin2

你这种做法是错的。
flag=0;
for(j=1;j<=m;j++)
{
if(score[i][j]>=aver2[j])
flag=1;
else
break;
}
if(flag==1)
s+=1;
这段错误的。不是浮点问题,目前的oj浮点能直接比较相等的。
问题就是你这种判断方法是只要一开始的第一个是大于平均值,之后不管是否大于平均值都认为是大于平均值的。
---------------------------
if(score[i][j]>=aver2[j])
flag=1;
else{
flag=0;//修改~~~
break;
}

杭电的2023

这是我的ac代码,你对照着看看吧,加油,一定要学会找自己的错误,否则是无法提高的#include<stdio.h>
int main()
{
int j,i,m,n,c,k,d,a[100][100],l;float sum1[100],sum2[100];
while(scanf(%d%d,&m,&n)!=EOF)
{
d=0;
for(i=1;i<=m;i++)
{
sum1[i]=0;
for(j=1;j<=n;j++)
{
scanf(%d,&a[i][j]);
sum1[i]+=a[i][j];
}
}
for(l=1;l<=n;l++)
{
sum2[l]=0;
for(i=1;i<=m;i++)
{
sum2[l]+=a[i][l];
}
}
for(k=1;k<=m-1;k++)
printf(%.2f ,sum1[k]/n);
printf(%.2f\n,sum1[k]/n);

for(k=1;k<=n-1;k++)
printf(%.2f ,sum2[k]/m);
printf(%.2f\n,sum2[k]/m);
for(i=1;i<=m;i++)
{
c=0;
for(j=1;j<=n;j++)
{
if(a[i][j]>=sum2[j]/m)c++;
if(c==n)d++;
}
}
printf(%d\n\n,d);
}
return 0;
}

相关推荐

猜你喜欢

大家正在看

换一换