发新话题
打印

关于程序的优化和专业性请教高手````

关于程序的优化和专业性请教高手````

/**************使用超松弛迭代方法求各点电位*******************/
#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 编辑 ]

TOP

以改,见修改
本帖最近评分记录

TOP

看到了``不过怎么好多符号都变样了
还有,为什么一定要在原稿上改呢。。。。

TOP

回复 3# 的帖子

符号变样貌似是系统的问题。不知道怎么又出现了
因为梦想而努力,因为有你而精彩!
mail: qianzongming@gmail.com

TOP

引用:
原帖由 大道至简 于 2008-4-4 10:48 发表
符号变样貌似是系统的问题。不知道怎么又出现了
由于直接copy出现字体问题
编辑一下就可以了
我帮改了
回帖既是一种美德,是对作者的鼓励,同时又为后来者推荐了好文章,何乐而不为呢?

TOP

发新话题