24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1018  |  回复: 8

夜羽

新虫 (初入文坛)

[求助] 帮看下 为什么这个程序不能运行

高人  帮忙看下   为什么下面的这个程序编译连接都正确  却不能运行啊
CODE:
#include
#include
#include
int main()
{int num,i,j;
float rand,x,y,value2,xmax,xmin,ymax,ymin,beta,R;
float a[100],b[100],r[100];
float d[]={22.5,18,18,13,13,13,13,13,13,13,13,13,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5};
float randomg(float *value);
char infile[80];
FILE *out;
printf("enter a file name:");
gets(infile);
if((out=fopen(infile,"w"))==NULL)
{printf("can not open file %s!\n",infile);
exit(0);
}
num=42;
beta=1.1;
printf("please input value2 and define the caculation zone(xmin xmax ymin ymax):\n");
scanf("%f%f%f%f%f",&value2,&xmin,&xmax,&ymin,&ymax);
printf("value2=%f xmin=%f xmax=%f ymin=%f ymax=%f\n",value2,xmin,xmax,ymin,ymax);
for(j=0;j {step1: rand=randomg(&value2);
  x=xmin+(xmax-xmin)*rand;
  rand=randomg(&value2);
  y=ymin+(ymax-ymin)*rand;
  R=d[j]/2;
  if((x+R>xmax)||(x-Rymax)||(y-R   for(i=0;i   {if(sqrt((x-a[i])*(x-a[i])+(y-b[i])*(y-b[i]))   }
  a[j]=x;b[j]=y;r[j]=R;
}
printf("coordinateX   coordinateY   Radius\n");
for(i=0;i {printf("%11f%11f%11f",a[i],b[i],r[i]);
  printf("\n");
  fprintf(out,"%11f%11f%11f\n",a[i],b[i],r[i]);
}
}

float randomg(float *v)
{float rand,k1,k2;
k1=48828125*(*v)+0;
k2=fmod(k1,1073741824);
rand=k2/(1073741824);
*v=k2;
return rand;
}

[ Last edited by 微尘、梦想 on 2012-1-18 at 20:32 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

坚持做自己
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夜羽

新虫 (初入文坛)

脸的部分都是半括号啊   不知这里怎么显示成小脸了
坚持做自己
2楼2012-01-18 19:47:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxfirst

新虫 (小有名气)

计算机视觉算法

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty(金币+1): 欢迎常来程序语言看看 2012-01-19 16:55:32
夜羽(金币+2): 有帮助 2012-01-20 12:12:16
for(j=0;j         {
                step1: rand=randomg(&value2);
                  x=xmin+(xmax-xmin)*rand;
                  rand=randomg(&value2);
                  y=ymin+(ymax-ymin)*rand;
                  R=d[j]/2;
                  if((x+R>xmax)||(x-Rymax)||(y-R                   for(i=0;i                   {
                          if(sqrt((x-a)*(x-a)+(y-b)*(y-b))))  goto step1;
                  }
                  a[j]=x;b[j]=y;r[j]=R;
        }
这段程序有问题,最好不要用goto,试试其他方法。换成下一段试试:
for(j=0;j         {
                 rand=randomg(&value2);
                  x=xmin+(xmax-xmin)*rand;
                  rand=randomg(&value2);
                  y=ymin+(ymax-ymin)*rand;
                  R=d[j]/2;
                  if((x+R>xmax)||(x-Rymax)||(y-R                   for(i=0;i                   {
                          if(sqrt((x-a)*(x-a)+(y-b)*(y-b))))  continue;
                  }
                  a[j]=x;b[j]=y;r[j]=R;
        }
3楼2012-01-19 09:42:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

trampni

铁虫 (小有名气)

看见goto 我就恶心了
4楼2012-01-20 11:01:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夜羽

新虫 (初入文坛)

引用回帖:
: Originally posted by zxfirst at 2012-01-19 09:42:39:
for(j=0;j<num;j++)
        {
                step1: rand=randomg(&value2);
                  x=xmin+(xmax-xmin)*rand;
                  rand=randomg(&value2);
                  y=ymin+(ymax-ymin)*rand;
                  R=d[j]/2;
                  if((x+R>xmax)||(x-R ...

非常感谢
坚持做自己
5楼2012-01-20 12:12:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxfirst

新虫 (小有名气)

计算机视觉算法


jjdg(金币+1): 感谢参与 2012-01-21 10:29:59
引用回帖:
5楼: Originally posted by 夜羽 at 2012-01-20 12:12:03:
非常感谢

互相帮助!
6楼2012-01-20 19:51:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cw277

木虫 (正式写手)


jjdg(金币+1): 春节快乐 2012-01-24 22:13:59
引用回帖:
3楼: Originally posted by zxfirst at 2012-01-19 09:42:39:
for(j=0;j<num;j++)
        {
                step1: rand=randomg(&value2);
                  x=xmin+(xmax-xmin)*rand;
                  rand=randomg(&value2);
                  y=ymin+(ymax-ymin)*rand;
                  R=d[j]/2;
                  if((x+R>xmax)||(x-R ...

第二个continue 不对吧。。   他要跳到step1里,continue跳不了啊
感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
7楼2012-01-24 22:10:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxfirst

新虫 (小有名气)

计算机视觉算法


jjdg(金币+1): 春节快乐 2012-01-25 09:59:00
引用回帖:
7楼: Originally posted by cw277 at 2012-01-24 22:10:02:
第二个continue 不对吧。。   他要跳到step1里,continue跳不了啊

for(i=0;i        {
            if(sqrt((x-a)*(x-a)+(y-b)*(y-b))         }
这个for循环没有用啊,换成下面的:
if(sqrt((x-a)*(x-a)+(y-b)*(y-b))
8楼2012-01-25 08:39:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cw277

木虫 (正式写手)


jjdg(金币+1): 春节快乐 2012-01-26 10:51:06
引用回帖:
8楼: Originally posted by zxfirst at 2012-01-25 08:39:34:
for(i=0;i<j;i++)
       {
            if(sqrt((x-a)*(x-a)+(y-b)*(y-b))<beta*(R+r))  goto step1;
        }
这个for循环没有用啊,换成下面的:
if(sqrt((x-a)*(x-a)+(y-b)*(y-b))<beta*(R+r ...

学习了。。。
感谢生活让我慢慢学会控制自己的情绪,学会包容与忍耐,学会不再去期待
9楼2012-01-25 10:17:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 夜羽 的主题更新
信息提示
请填处理意见