| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2694 人关注过本帖
标题:高斯消元法求找错误 谢谢各位大神
只看楼主 加入收藏
光头佬
Rank: 1
等 级:新手上路
帖 子:28
专家分:7
注 册:2016-3-25
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:17 
高斯消元法求找错误 谢谢各位大神
#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
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:7 
玩大家来找茬吗?
至少有个warning得消除下:
1>c:\users\tr002\documents\visual studio 2015\projects\max.c\max.c\main.c(54): warning C4715: “ca”: 不是所有的控件路径都返回值
2016-04-07 16:15
光头佬
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
快速回复:高斯消元法求找错误 谢谢各位大神
数据加载中...
 
   



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

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