讨论 / 疑惑
whlhc888 2012-01-08 04:00:00
点我顶贴 收藏 删除
#include<stdio.h>

int main(){

int i,j,t[905],n,z,num[905];

double s;

scanf("%d",&n);

for(i=1;i<=n;i++){

scanf("%d",&t[i]);

num[i]=i;

}

for(i=2;i<=n;i++)for(j=1;j<=n-1;j++)if(t[j]>t[j+1]||(t[j]==t[j+1]&&num[j]>num[j+1])){

z=t[j];

t[j]=t[j+1];

t[j+1]=z;

z=num[j];

num[j]=num[j+1];

num[j+1]=z;

}

z=n-1;

s=0;

for(i=1;i<=n-1;i++){

printf("%d ",num[i]);

s+=z*t[i];

z--;

}

printf("%d\n",num[i]);

printf("%.2f",s/n);

return 0;

}

WA 90分

为什么第十个点会最后输出负数??

#1 怡红公子@2012-01-08 04:00:00
回复 删除
建议你把数组开大一点

题目描述有误

查看更多回复
提交回复