| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1206 人关注过本帖
标题:列主元消去法,换行没有成功,也可以帮忙修改一个简单完美的程序出来
取消只看楼主 加入收藏
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:2 
列主元消去法,换行没有成功,也可以帮忙修改一个简单完美的程序出来
#include<stdio.h>
#include<math.h>
    int main(void)
    {
        double a[50][50],x[50],temp,sum,s;
        int i,j,k,r,n;
        printf("请输入线性方程组的系数:\n");
        scanf("%d",&n);
        printf("请输入线性方程组的元素值:\n");
        for(i=0;i<n;i++)
        {
            for(j=0;j<=n;j++)
                scanf("%lf",&a[i][j]);
        }
        printf("刚才输入的矩阵为:\n");
        for(i=0;i<n;i++)
        {
            for(j=0;j<=n;j++)
            {
                printf("%10lf",a[i][j]);
            }
            printf("\n");
        }
        k=0;
        do
        {
            r=k;
            for(i=k;i<n;i++)
            {
                if(fabs(a[r][k])<fabs(a[i][k]))
                    r=i;
                if(r>k)
                    for(j=k;j<=n;j++)
                    {
                        temp=a[r][j];
                        a[r][j]=a[k][j];
                        a[k][j]=temp;
                    }
            }/*交换成功,接下来进行计算*/
            for(i=k+1;i<n;i++)
            {
                s=a[i][k]/a[k][k];
                for(j=k;j<=n;j++)
                {
                    a[i][j]=a[i][j]-s*a[k][j];
                }
            }
            k++;
        }
            while(k<n-1);/*循环结束条件*/
                printf("输出计算后的矩阵为:\n");
            for(i=0;i<n;i++)
            {
                for(j=0;j<=n;j++)
                {
                    printf("%10lf",a[i][j]);
                }
                printf("\n");
            }
            for(k=n-1;k>=0;k--)
            {
                sum=0;
                for(j=k+1;j<n;j++)
                    sum+=a[k][j]*x[j];
                x[k]=(a[k][n]-sum)/a[k][k];
            }
            for(k=0;k<n;k++)
            printf("x[%d]=%lf\n",k,x[k]);
            return 0;
    }
书上的例子正确答案应该是:
请输入线性方程组的系数:
3
请输入线性方程组的元素值:
2 1 2 5
5 -1 1 8
1 -3 -4 -4
刚才输入的矩阵为:
2 1 2 5
5 -1 1 8
1 -3 -4 -4
输出计算后的矩阵为:
5 -1 1 8
0 -2.8 -4.2 -5.6
0 0 -0.5 -1



搜索更多相关主题的帖子: 成功 include double 元素 
2013-01-10 11:13
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
收藏
得分:0 
各位,各位,能不能出来一个解决问题的呀

菜鸟也疯狂
2013-01-10 17:40
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
收藏
得分:0 
高斯列主元消去法,你编译一下就会发现,输出后的矩阵,和正确输出的矩阵没有进行换行

菜鸟也疯狂
2013-01-11 00:06
快速回复:列主元消去法,换行没有成功,也可以帮忙修改一个简单完美的程序出来
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016942 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved