免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2295 | 回复: 4
打印 上一主题 下一主题

请教一个C言问题---列主元消去法 [复制链接]

linck 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-01-15 21:03 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2003-01-16 08:55 |只看该作者

请教一个C言问题---列主元消去法

你想要的是什么结果

论坛徽章:
0
3 [报告]
发表于 2003-01-16 09:06 |只看该作者

请教一个C言问题---列主元消去法

代码对齐后结果
:没有修改
检查一下逻辑
#include <math.h>;
#include <stdio.h>;
main()
{
        float a[20][21],t,max;
        int i,j,k,M,n;
        FILE *in,*out;
        in=fopen("shuju","r";
        out=fopen("jieguo","w";
        if(in==NULL||out==NULL)
        {
                printf("\nfile open or write error\n";
                exit(0);
                fscanf(in,"%d",&amp;M);
                for(i=0;i<M;i++)
                        for(j=0;j<=M;j++)
                                fscanf(in,"%f",&amp;a[j]);
                       
                        for(k=0;k<M-1;k++)
                        {
                                max=fabs(a[k][k]);
                                n=k;
                                for(i=k+1;i<M;i++)
                                        if(fabs(a[k])>;max)
                                        {max=fabs(a[k]);
                                        n=i;
                                        }
                                        if(n!=k)
                                                for(j=0;j<=M;j++)
                                                {t=a[k][j];a[k][j]=a[n][j];a[n][j]=t;}
                                                for(i=k+1;i<M;i++)
                                                        for(j=0;j<=M;j++)
                                                                a[j]=a[j]-a[k][j]*a[k]/a[k][k];
                        }
                        for(i=M-1;i>;=0;i--)
                                for(j=i-1;j>;=0;j--)
                                        for(k=M;k>;=0;k--)
                                                a[j][k]=a[j][k]-a[k]*a[j]/a;
                                        for(i=0;i<M;i++)
                                        {
                                                fprintf(out,"\nx%d=%f\n",i+1,a[M]/a);
                                                printf("\nx%d=%f\n",i+1,a[M]/a);
                                        }
                                        fclose(in);
                                        fclose(out);
        }
}

另外代码写整齐会好一点
linck 该用户已被删除
4 [报告]
发表于 2003-01-16 10:18 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2003-01-16 12:48 |只看该作者

请教一个C言问题---列主元消去法

代码对齐后发现

  1.         if(in==NULL||out==NULL)
  2.         {
  3.                 printf("\nfile open or write error\n");
  4.                 exit(0);
  5.                 fscanf(in,"%d",&M);
复制代码

所以你后面的代码就没有执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP