C++小问题 高手解决下

来源:百度知道 编辑:UC知道 时间:2024/05/17 09:07:50
#include "iostream.h"

int main()
{
double r1,r2,r3,r4,r5,v1,v2;
cin>>r1>>r2>>r3>>r4>>r5>>v1>>v2;
int i=0;
double a[3][4]={{r1+r2,-r2,0,v1},{-r2,r2+r3+r4,-r4,0},{0,-r4,r4+r5,-v2}};
for(i=0;i<4;i++)
{
a[1][i]=a[1][i]-a[0][i]*a[1][0]/a[0][0];
a[2][i]=a[2][i]-a[0][1]*a[2][0]/a[0][0];
}
for(i=0;i<4;i++)
{
a[2][i]=a[2][i]-a[1][i]*a[2][1]/a[1][1];
}
for(i=0;i<4;i++)
{
a[0][i]=a[0][i]-a[2][i]*a[0][2]/a[2][2];
a[1][i]=a[1][i]-a[2][i]*a[1][2]/a[2][2];
}
for(i=0;i<4;i++)
{
a[0][i]=a[0][i]-a[1][i]*a[0][1]/a[1][1];
}
double i1,i2,i3;
i1=a[0][3]/a[0][0];
i2=a[1][3]/a[1][1];
i3=a[2][3]/a[2][2];
cout<<i1<<" "<<i2<<" "<<i3<<" ";
return 0;
}
为什么交ACM上显示wang answer

a[1][i]=a[1][i]-a[0][i]*a[1][0]/a[0][0];

a[1][0]/a[0][0]本来应该是不变的,但是经过循环后

赋值,i = 0的时候,值被改变,要特别注意,可以申明一个变量保存

a[1][0]/a[0][0]的值,这样就不会出错了

这句有问题,自己看吧,在循环的时候,已不知不觉的将值改变了, 在本地计算机上都不正确还提交啊,

ACM题哪?
答案不对当然是WA

楼主 你应该提供一个题目的链接。
否则很难确定你的Wa怎么回事!