标题:高斯消元法求找错误 谢谢各位大神
取消只看楼主
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
结帖率:66.67%
已结贴  问题点数:20 回复次数:12 
高斯消元法求找错误 谢谢各位大神
#include<stdio.h>
double num[10][10];
double result;
double ca(int d,int n,int cou)
{
    int a,b,c,e,flag;
    double k;
   
    if(d==n-1)
    {
        result=1;
        for(a=0;a<n;a++)
            result*=num[a][a];
        if(result==0)
            return 0;
        else if(cou%2==0)
            return result;
        else if(cou%2!=0)
            {
                result=-result;
                return result;
            }
    }
    else
    {
        if(num[d][d]==0)
        {
            flag=1;
            for(c=d+1;c<n;c++)
            {
                if(num[d][c]!=0)
                    {
                        for(e=0;e<n;e++)
                        {
                            k=num[e][d];
                            num[e][d]=num[e][c];
                            num[e][c]=k;                           
                        }
                        flag=0;
                        cou++;
                    }
            }
            if(flag==1)
                return 0;            
        }
        for(a=d+1;a<n;a++)
        {
            k=num[a][d]/num[d][d];
            for(b=d;b<n;b++)
                num[a][b]-=k*num[d][b];
        }
        ca(d+1,n,cou);
    }
 }
int main(void)
{
     int a,b,c,n,m;
     scanf("%d",&n);
     for(a=1;a<=n;a++)
    {
         scanf("%d",&m);
         for(b=0;b<m;b++)
             for(c=0;c<m;c++)
                 scanf("%lf",&num[b][c]);
        result=ca(0,m,0);   
        printf("%.0f\n",result);
    }

     return 0;
}
搜索更多相关主题的帖子: include double return result 高斯 
2016-04-07 16:00
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
回复 2楼 grmmylbs
讲真,怪我才疏学浅 ,没懂这个错误- ,我自己的是运行起来了,还是复制少了?我看看
2016-04-07 23:23
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
有大哥来看下吗 真的不会 结果是对的啊
2016-04-08 19:51
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
#include<stdio.h>
double num[10][10];
double result;
double ca(int d,int n,int cou)
{
    int a,b,c,e,flag;
    double k;
   
    if(d==n-1)
    {
        result=1;
        for(a=0;a<n;a++)
            result*=num[a][a];
        if(result==0)
            return 0;
        else if(cou%2==0)
            return result;
        else if(cou%2!=0)
            {
                result=-result;
                return result;
            }
    }
    else
    {
        if(num[d][d]==0)
        {
            flag=1;
            for(c=d+1;c<n;c++)
            {
                if(num[d][c]!=0)
                    {
                        for(e=0;e<n;e++)
                        {
                            k=num[e][d];
                            num[e][d]=num[e][c];
                            num[e][c]=k;                           
                        }
                        flag=0;
                        cou++;
                    }
            }
            if(flag==1)
                return 0;            
        }
        for(a=d+1;a<n;a++)
        {
            k=num[a][d]/num[d][d];
            for(b=d;b<n;b++)
                num[a][b]-=k*num[d][b];
        }
        ca(d+1,n,cou);
    }
 }
int main(void)
{
     int a,b,c,n,m;
     scanf("%d",&n);
     for(a=1;a<=n;a++)
    {
         scanf("%d",&m);
         for(b=0;b<m;b++)
             for(c=0;c<m;c++)
                 scanf("%lf",&num[b][c]);
        result=ca(0,m,0);   
        printf("%.0f\n",result);
    }

     return 0;
}
2016-04-08 19:52
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
能有大牛看看吗,,oj过不了难受啊= =
2016-04-08 22:50
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
其是我不知道我这个思路正确没正确,但感觉在N阶的行列式下还是可以得,我就是把自己以前记得的如何化简行列式的方法用程序写了出来
2016-04-08 22:51
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
啊,真切求个大哥来看看,小弟我水平有限,不知道哪里错误了
2016-04-08 23:18
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
为什么!为什么!
2016-04-09 20:01
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
帮下忙可以吗0 0
2016-04-09 23:13
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
得分:0 
啊,想了下,其实计算机运算不是以分数形式,在运算的时候会不会有精度的问题,就是当数据大了,以浮点类型储存的数据总会有丢失吗
2016-04-10 00:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463372-1-1.html




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

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