| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
各位高手看看,下面的程序哪里错了?#include <stdio.h>
#include <math.h>
int n,m, adjacent[101][101],tankadjnum[101],isnoadj[101],exitt=0;
double tank[101],oldtank[101];
void timet1()
{
int i,j;
while(1){
for(i=1;i<=n;i++){
tank[i]=0;
for(j=1;j<=n;j++)
{
if(j!=i)
{
if(tankadjnum[j]!=0)
tank[i]+=adjacent[i][j]*oldtank[j]/tankadjnum[j];
//printf("tank[%d]=%f\n",i,tank[i]);
}
}
if(isnoadj[i]==0)
tank[i]=oldtank[i];
}
exitt=1;
for(i=1;i<=n;i++)
if((tank[i]-oldtank[i]>=0?tank[i]-oldtank[i]:oldtank[i]-tank[i])>=0.001)
exitt=0;
if(exitt==1)
{
for(i=1;i<=n;i++)
printf("%.3f\n",tank[i]);
printf("\n");
return;
}
for(i=1;i<=n;i++)
oldtank[i]=tank[i];
}
}
int main()
{
int t,i,j,k,a,b;
scanf("%d",&t);
for(k=1;k<=t;k++)
{
for(i=1;i<=100;i++)
{
tankadjnum[i]=0;
isnoadj[i]=0;
for(j=1;j<=100;j++)
adjacent[i][j]=0;
}
scanf("%d%d",&n,&m);
for(j=1;j<=n;j++)
{scanf("%lf",&tank[j]);
oldtank[j]=tank[j];
}
for(j=1;j<=m;j++)
{
scanf("%d%d",&a,&b);
adjacent[a][b]=1;
adjacent[b][a]=1;
tankadjnum[a]+=1;
tankadjnum[b]+=1;
isnoadj[a]=1;
isnoadj[b]=1;
}
timet1();
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator