求c语言高手,急!!!!!!! 5
DebugAssertionFailed!program:F:\VC98\MSDEV98\MYPROJECTS\Debug\课设.exefile:fscanf.cline...
Debug Assertion Failed!
program:F:\VC98\MSDEV98\MYPROJECTS\Debug\课设.exe
file:fscanf.c
line:54
Expression:stream!=NULL
for information on how your program can cause an assertion failure,see the Visual C++ documentation on asserts.
编译没提示有错误,但运行时出现这种情况,如何解决
原程序:
#include<stdio.h>
#include<math.h>
void main()
{
double x0,y0,h,x1,y1,k1,k2,k3,k4;
unsigned n,N;
FILE *fp;
fp=fopen("IN6.txt","r");
fscanf(fp,"%lf%lf",&x0,&y0);
fscanf(fp,"%lf",&h);
fscanf(fp,"%lf%lf",&x1,&y1);
fclose(fp);
N=(unsigned)((y1-x1)/h);
fp=fopen("OUT6.doc","w");
fprintf(fp,"xn\t\tyn\n");
printf("xn\tyn\n");
for(n=0;n<N;n++)
{
x1=x0+h;
k1=sqrt(x0*x0+y0*y0);
k2=sqrt((x0+h/2)*(x0+h/2)+(y0+h/2*k1)*(y0+h/2*k1));
k3=sqrt((x0+h/2)*(x0+h/2)+(y0+h/2*k2)*(y0+h/2*k2));
k4=sqrt((x1)*(x1)+(y0+h*k3)*(y0+h*k3));
y1=y0+h/6*(k1+2*k2+2*k3+k4);
fprintf(fp,"%.3lf\t%lf\n",x1,y1);
printf("%.3lf\t%lf\n",x1,y1);
x0=x1;
y0=y1;
}
fclose(fp);
} 展开
program:F:\VC98\MSDEV98\MYPROJECTS\Debug\课设.exe
file:fscanf.c
line:54
Expression:stream!=NULL
for information on how your program can cause an assertion failure,see the Visual C++ documentation on asserts.
编译没提示有错误,但运行时出现这种情况,如何解决
原程序:
#include<stdio.h>
#include<math.h>
void main()
{
double x0,y0,h,x1,y1,k1,k2,k3,k4;
unsigned n,N;
FILE *fp;
fp=fopen("IN6.txt","r");
fscanf(fp,"%lf%lf",&x0,&y0);
fscanf(fp,"%lf",&h);
fscanf(fp,"%lf%lf",&x1,&y1);
fclose(fp);
N=(unsigned)((y1-x1)/h);
fp=fopen("OUT6.doc","w");
fprintf(fp,"xn\t\tyn\n");
printf("xn\tyn\n");
for(n=0;n<N;n++)
{
x1=x0+h;
k1=sqrt(x0*x0+y0*y0);
k2=sqrt((x0+h/2)*(x0+h/2)+(y0+h/2*k1)*(y0+h/2*k1));
k3=sqrt((x0+h/2)*(x0+h/2)+(y0+h/2*k2)*(y0+h/2*k2));
k4=sqrt((x1)*(x1)+(y0+h*k3)*(y0+h*k3));
y1=y0+h/6*(k1+2*k2+2*k3+k4);
fprintf(fp,"%.3lf\t%lf\n",x1,y1);
printf("%.3lf\t%lf\n",x1,y1);
x0=x1;
y0=y1;
}
fclose(fp);
} 展开
4个回答
展开全部
Expression:stream!=NULL
文件流异常~
你从fp=fopen("IN6.txt","r");打上断点 看看各语句执行后 变量值是否正常
文件流异常~
你从fp=fopen("IN6.txt","r");打上断点 看看各语句执行后 变量值是否正常
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就这么点信息 怎么看?不把错误代码贴出来?想看assert错误 可以google msdn 里面查查看,例如
assert(c>0),如果c<=0,那么就会出现assert错误。
assert(c>0),如果c<=0,那么就会出现assert错误。
追问
代码贴出来了
追答
没有问题啊! 估计是你运行程序的时候把word文档打开了吧,这样写的时候会出错!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件名后缀加“.c” 你看看行不行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询