⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d8r5.cpp

📁 C语言的编程合集!是我自己编的!很有用的!大家可以下载!有意见麻烦大家提出来以便本人及时修改!
💻 CPP
字号:
#include <math.h>
#include <iomanip.h>
#include <iostream.h>

void balanc(double a[6][6],int n)
{
	double radix,sqrdx,c,r,f,g,s;
	int last,i,j;
    radix = 2.0;
    sqrdx = radix *radix;
loop1:   last = 1;
	for (i = 1; i<=n; i++)
	{
        c = 0.0;
        r = 0.0;
        for (j = 1; j<=n; j++)
		{
            if (j != i)
			{
                c = c + fabs(a[j][i]);
                r = r + fabs(a[i][j]);
            }
        }
        if ((c != 0.0) && (r != 0.0))
		{
            g = r / radix;
            f = 1.0;
            s = c + r;
loop2:      if (c < g)
			{ 
                f = f * radix;
                c = c * sqrdx;
                goto  loop2;
			}
            g = r * radix;
loop3:      if (c > g)
			{ 
                f = f / radix;
                c = c / sqrdx;
                goto  loop3;
			}
            if (((c + r) / f) < (0.95 * s))
			{
                last = 0;
                g = 1.0 / f;
                for (j = 1 ; j<=n; j++)
				{
                    a[i][j] = a[i][j] * g;
                }
                for (j = 1 ; j<=n; j++)
				{
                    a[j][i] = a[j][i] * f;
                }
            }
        }
    }
    if (last == 0) goto loop1;
}

void main()
{
    //program d8r5
    //driver for routine balanc
    int i,j,np = 5;
    double a[6][6],r[6],c[6];
    a[1][1] = 1.0; a[1][2] = 100.0; a[1][3] = 1.0; a[1][4] = 100.0; a[1][5] = 1.0;
    a[2][1] = 1.0; a[2][2] = 1.0;   a[2][3] = 1.0; a[2][4] = 1.0;   a[2][5] = 1.0;
    a[3][1] = 1.0; a[3][2] = 100.0; a[3][3] = 1.0; a[3][4] = 100.0; a[3][5] = 1.0;
    a[4][1] = 1.0; a[4][2] = 1.0;   a[4][3] = 1.0; a[4][4] = 1.0;   a[4][5] = 1.0;
    a[5][1] = 1.0; a[5][2] = 100.0; a[5][3] = 1.0; a[5][4] = 100.0; a[5][5] = 1.0;
    //cout<< norms
    for (i = 1;i<=np;i++)
	{
        r[i] = 0.0;
        c[i] = 0.0;
        for (j = 1; j<=np; j++)
		{
            r[i] = r[i] + fabs(a[i][j]);
            c[i] = c[i] + fabs(a[j][i]);
        }
    }
    cout<<endl;
    cout<<setw(5)<<"Rows:"<<endl;
    cout<<endl;
    for (i = 1; i<=np; i++)
        cout<< setw(10)<<r[i];
    cout<<endl;
	cout<<endl;
	cout<<"Columns:"<<endl;
	cout<<endl;
    for (i = 1; i<=np; i++)
	{
        cout<<setw(10)<<c[i];
    }
    cout<<endl;
	cout<<endl;
    cout<< " ********** balancing matrix **********"<<endl;
    balanc(a, np);
    //cout<< norms
    for (i = 1; i<=np; i++)
	{
        r[i] = 0.0;
        c[i] = 0.0;
        for (j = 1; j<=np; j++)
		{
            r[i] = r[i] + fabs(a[i][j]);
            c[i] = c[i] + fabs(a[j][i]);
        }
    }
    cout<<endl;
    cout<<"Rows:"<<endl;
	cout<<endl;
    for (i = 1; i<=np; i++)
        cout<<setw(10)<<r[i];
    cout<<endl;
	cout<<endl;
    cout<<"Columns:"<<endl;
    cout<<endl;
    for (i = 1; i<=np; i++)
	{
        cout<< setw(10)<<c[i];
    }
    cout<< endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -