| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5852 人关注过本帖
标题:请教:c程序运行错误-Unhandled exception in (...).exe: 0xc0000005: Acc ...
取消只看楼主 加入收藏
dw_4
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-5-26
收藏
 问题点数:0 回复次数:4 
请教:c程序运行错误-Unhandled exception in (...).exe: 0xc0000005: Access Vio

我写一个化三角矩阵的c程序运行时出现:
Unhandled exception in (...).exe: 0xc0000005: Access Violation
这个是怎么回事啊?

#include<stdio.h>
/***//************
* swap: exchang the to paraments
******************************/
void swap(double & p1, double & p2)
{
double temp;
temp=p1;
p1=p2;
p2=temp;
}

/***//***********************
* 消元
**********************************/
void XiaoYuan(double a[][5], int size,double * detA, int start)
{
int i,j;
double L[10];
for(i=start+1;i<size;i++)
{
a[i][start]=a[i][start+1]/a[start][start];
for(j=start+1;j<=size;j++)
{
a[i][j]=a[i][j]-L[i]*a[start][j];

}
*detA=a[start][start]*(*detA);
}
}
/**//**********************************************************
* transform the given matrix a[][] to a up_triangel matrix *
* a[][] 系数矩阵,带等式右边b *
* size: 系数矩阵的行数 *
* detA: 系数矩阵的行列式 *
* e 为最小可分辨的值
* 完成返回1,矩阵非奇异返回0 *
******************************************************************/

int Tran_Up_Triangel(double a[][5],int size, double * detA, double e)
{
int k=0;
int i=0;
int l=0;
int j=0;
for(k=0;k<size-1;k++)
{
for(i=k+1,l=k;i<size;i++)
{
if(a[l][k]>a[i][k])
l=i;
}
if(a[l][k]<e&&a[l][k]>(-1)*e)
{
detA=0;
return 0;
}
else
{
for(j=k;j<=size;j++)
{
swap(a[k][j],a[l][j]);
* detA=(-1)*(*detA);
XiaoYuan(a,size,detA,k);
}
if(a[size-1][size-1]<e&&a[size-1][size-1]>(-1)*e)
{
detA=0;
return 0;
}
else
{
*detA=a[size-1][size-1]*(*detA);
}
}
}
return 1;
}

/**************************/
void print_array(double array[][5],int size)
{
int i,j;
for(i=0;i<size-1;i++)
{
for(j=0;j<size;j++)
{
printf(" %f", array[i][j]);
}
printf("\n");
}
}


#include<stdio.h>
#include"Subfun.h"
#include <stdlib.h>
/**//********************************
* test_main *
* for testing *
************************************/
void main()
{
double a[4][5];
int n=4;
double e=0.02;
double detA=0;
int i,j;

for (i=0;i<=n;i++)
for (j=0;j<=n+1;j++)
a[i][j]=(float)rand()/100.0;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++) printf("%8.4f ",a[i][j]);
printf("\n");
}
if(Tran_Up_Triangel(a, n,& detA,e)==1)
{
print_array(a,n);
}

搜索更多相关主题的帖子: exception Unhandled Vio Access exe 
2006-05-26 14:16
dw_4
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-5-26
收藏
得分:0 
谢谢!!

但是,我把主函数里的那几个for语句照上面的改了,但是还是有一样的越界提示啊

Subfun.h是放消元和化三角两个函数的文件,这样做头文件可以的吧?我没怎么编程经验,弄的很不规范,不好意思!

2006-05-26 15:29
dw_4
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-5-26
收藏
得分:0 

这样就不报错了!!
非常感谢!
报那个错 是不是 一般因为访问越界?


2006-05-26 15:58
dw_4
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-5-26
收藏
得分:0 

谢谢!!!


2006-05-26 20:20
dw_4
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-5-26
收藏
得分:0 

有一个问题哦,我现在写了这两个小函数想要测试是否正确,我在主函数里写了简单的测试代码,我现在修改到已经可以有比较正常的输出了,但是不知道输出的三角矩阵对不对,我想问一下有没有什么好办法可以方便地验证的啊?还有有没有可以专门测这些子函数的东西呢?


2006-05-26 20:24
快速回复:请教:c程序运行错误-Unhandled exception in (...).exe: 0xc0000005 ...
数据加载中...
 
   



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

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