紧急求助!!

大海1986 2005-05-26 05:01:29
void CParallelLineTestView::parallel(double *xxw,double *yyw,short kk, short n, double w,double *xx, double *yy,double *xx1, double *yy1)
{
double a,a1,a2;
char buffer[1024];
double er1,r;
short i;
FILE *fp;
r=0.5*w;
if(n==kk) return;
for(i = kk;i<=n;i++)
{
if(i==kk)
//线段两端的平行线坐标求法
{
a1=winkel(xxw[i], yyw[i], xxw[i + 1], yyw[i + 1]);
xx[i] = xxw[i] -(double)(r*sin(a1));
yy[i] = yyw[i] + (double)(r*cos(a1));
xx1[i] = xxw[i] +(double)(r*sin(a1));
yy1[i] = yyw[i] -(double)(r*cos(a1));
}
else//中间点的平行线坐标求法,在角的平分线上
{
if(i==n)
{
a1=winkel(xxw[i-1], yyw[i-1], xxw[i], yyw[i]);
xx[i] = xxw[i] -(double)(r*sin(a1));
yy[i] = yyw[i] + (double)(r*cos(a1));
xx1[i] = xxw[i] +(double)(r*sin(a1));
yy1[i] = yyw[i] -(double)(r*cos(a1));

}
else
{
a2=a1;
a1=winkel(xxw[i], yyw[i], xxw[i + 1], yyw[i + 1]);
a = (a1 + a2)*0.5;
er1 =r/cos((a2 - a1)*0.5);
if(er1>4.*r) er1=4.*r;
if(er1<-4.*r) er1=-4.*r;
xx[i] = xxw[i] -(double)(er1 *sin(a));
yy[i] = yyw[i] +(double)(er1 *cos(a));
xx1[i] = xxw[i] +(double)(er1 *sin(a));
yy1[i] = yyw[i] -(double)(er1 *cos(a));

fp=fopen("D:\\11.txt","at+");
if (fp==NULL)
{
printf("错误: 不能打开文件%s!\n");
exit(0);
}

sprintf(buffer, "%f\n", xx[i]);
puts(buffer);
fwrite(buffer, 1, strlen(buffer), fp);
fclose(fp);
}
为什么最后fp的数据只有3条???
应该怎么处理?
...全文
118 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mostideal 2005-05-27
  • 打赏
  • 举报
回复
顶一个。。
useresu 2005-05-26
  • 打赏
  • 举报
回复
跟踪调试吧
hblinlin 2005-05-26
  • 打赏
  • 举报
回复
mark,这么长代码
magicknight 2005-05-26
  • 打赏
  • 举报
回复
up~
sunman1982 2005-05-26
  • 打赏
  • 举报
回复
看起来好麻烦啊 最好有点注释
积木 2005-05-26
  • 打赏
  • 举报
回复
你跟踪过么?你这个代码不完整,而且你没有说你这个代码是做什么用的……
xdspower 2005-05-26
  • 打赏
  • 举报
回复
你的程序不完整啊,起码{}在这段没有完全配对,少好几个}啊,这样一来程序的运行可以有很多变化的。
大海1986 2005-05-26
  • 打赏
  • 举报
回复
那位达人知道啊?给解决一下啊!!
foochow 2005-05-26
  • 打赏
  • 举报
回复
不懂,等高手-_-
zhousqy 2005-05-26
  • 打赏
  • 举报
回复
mark

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧