| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 305 人关注过本帖
标题:写了一个计算行列式值得程序,可是一运行就没了。大虾们帮看看……
收藏  订阅  推荐  打印
Daocaoren
Rank: 1
等级:新手上路
帖子:6
积分:166
注册:2008-4-18
写了一个计算行列式值得程序,可是一运行就没了。大虾们帮看看……

#include "stdio.h"
#include "stdlib.h"
#define N 4

float det(float (*p)[N],int i)/*计算行列式值的函数*/
{
  float s=1.0,t;
  unsigned short k,j;
  if(i==0)/*当转化为上三角行行列式时,计算值*/
  {
    for(k=0;k<N;k++)
    s*=*(*(p+k)+k);
    return s;
  }
  else
  {
    if(*(*(p+i)+i)==0)/*通过行的交换使a[i][i]不为零(不考虑不能使a[i][i]的值不为零的情形)*/
    for(k=0;k<i;k++)
    if(*(*(p+i)+k)!=0)
    {
      for(j=0;j<N;j++)
      {t=*(*(p+j)+i);*(*(p+j)+i)=*(*(p+j)+k);*(*(p+j)+k)=t;}
      break;
    }
    for(k=0;k<i;k++)/*使当前列中在a[i][i]前面的数全部变为0*/
    {
     if(*(*(p+i)+k)!=0)
     {
       for(j=0;j<N;j++)
       *(*(p+j)+k)-= *(*(p+j)+i)*( *(*(p+i)+k)/(*(*(p+i)+i)) );
     }
    }
    return det(p,i-1);/*通过递归对各列操作*/
  }
}

void main()
{
  float a[N][N];
  unsigned short i,j;
  printf("Please input a 4*4 determinant.\n");
  for(i=0;i<N;i++)
  for(j=0;j<N;j++)
  scanf("%f",&a[i][j]);
  printf("The value of the determinant is:\n%f",det(a,N-1));
}
搜索更多相关主题的帖子: 行列式  运行  
2008-5-6 20:15
neverTheSame
Rank: 6Rank: 6
来自:江西农业大学
等级:金牌会员
威望:9
帖子:1486
积分:15858
注册:2006-11-24

要知道程序运行的时间很快,你一运行程序就结束,所以你就没有看到结束。可在main函数的最后加上一getch()函数试一下。

应广大C语言学习者的强烈要求,为了让更多的人能够使用上<<C语言库函数查询器>> 。产品的价格调整为20元人民币,欢迎广大C语言学习来购买。联系QQ:475818502,E-mail:zhaoxufeng9997@126.com,也可留言.
2008-5-6 20:24
Daocaoren
Rank: 1
等级:新手上路
帖子:6
积分:166
注册:2008-4-18

加了getch(),只不过在这儿删掉了。
2008-5-6 20:35
Daocaoren
Rank: 1
等级:新手上路
帖子:6
积分:166
注册:2008-4-18

还有一点,即使不加,至少在我打开运行窗口时应该会停住,在输入数据后(那时才真正运行),按道理,才会闪掉的。
2008-5-6 20:38
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.050982 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved