关于程序的优化和专业性请教高手````
/**************使用超松弛迭代方法求各点电位*******************/
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int main(){
double a[5][5]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,100,100,100,100};//定义数组存放各点的电位值
int n=0; //存放迭代次数
double a1; //临时存放电位值
double b; //存放加速收敛因子
cout<<"输入加速收敛因子:";
cin>>b;
int flag=0; //存放布尔值判断迭代是否继续
while(flag==0){//while (true)
flag=1;
for(int i=1;i<4;i++){
for(int j=1;j<4;j++){
a1=a[j];
a[j]=a[j]+b/4*(a[i-1][j]+a[j-1]+a[i+1][j]+a[j+1]-4*a[j]);
flag*=(fabs(a[j]-a1)<1e-5);
//其实这块这样就挺好了
}
}
n+=1;
}
flag=0; //控制输出格式
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cout<<a[j]<<" ";
flag+=1;
if(flag%5==0)cout<<'\n';//这块不需要,这个flag变量不需要
}这块加cout ‘\n’;就行了..
}
cout<<"加速收敛因子为"<<b<<"的时候迭代次数为:"<<n<<endl;
cout<<'\n';
system("pause");
return(1);
}
请各位高手指点,尽量优化程序。。使之更专业,更严谨,更简洁。
[ 本帖最后由 d_d 于 2008-4-3 22:16 编辑 ]
搜索更多相关主题的帖子:
程序优化 大学生编程 大学编程 大学生编程交流 大学生编程交流社区