标题:c语言求助 [Error] variable or field 'RRR2' declared void
只看楼主
飞雪幻梦
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-11-12
结帖率:0
已结贴  问题点数:20 回复次数:3 
c语言求助 [Error] variable or field 'RRR2' declared void
#include "stdio.h"
#include "math.h"
#define PI 3.141593
#define PR PI/180
static float l[6],p[6],W[6],X[6],Y[6],VX[6],VY[6],AX[6],AY[6],DA,E[6],EV,EA,b;
double s(double a)
 {
     return a*a;
 }
int i,j,m,n,q;
void  RRR2(i,j,m,n,q)

{
    static double s[5],ky,kx,aa,cc,bb,su,sq,mq,c1,c2,v[5],ss;
    int mm;
    printf("input assembly module mm of RRR2\n");
    kx=X[q]-X[m];ky=Y[q]-Y[m];
    mq=sqrt(kc*kc+ky*ky);
    scantf("%d",&mm);
    if(mq>l[i]+l[j]||mq<fabs(l[i]-l[j]))
     { printf("RRR2 cannot assembled");return; }
    else{
      aa=2*l[i]*ky;bb=2*l[i]*kx;
      cc=l[i]*l[i]+mq*mq-l[j]*l[j];
      su=bb+cc;
      if(fabs(su)<1e-10)su=1e-10;
      sq=sqrt(aa*aa+bb*bb-cc*cc);
      p[i]=2*actan((aa+mm*sq)/su);
      X[n]=X[m]+l[i]*cos(p[i]);
      Y[n]=Y[m]+l[i]*sin(p[i]);
      s[3]=X[n]-X[q];s[4]=Y[n]-Y[q];
      p[j]=arctan(s[4]/s[3]);
    /*RRR2V*/
    if(p[j]<0)p[j]=p[j]+PI;
    s[1]=X[n]-X[m];s[2]=Y[n]-Y[m];
    v[1]=(VX[q]-VX[m])*s[1];
    v[2]=(VY[q]-VY[m])*s[2];
    v[3]=(VX[q]-VX[m])*s[3];
    v[4]=(VY[q]-VY[m])*s[4];
    ss=s[1]*s[4]-s[2]*s[3];
    if(ss<1e-10)ss=1e-10;
    W[i]=(v[3]+v[4])/ss;
    W[j]=(v[1]+v[2])/ss;
    VX[n]=VX[m]-W[i]*s[2];
    VY[n]=VY[m]-W[i]*s[1];
    /*RRR2a*/
    c1=AX[q]-AX[m]+W[i]*W[i]*s[1]-W[j]*W[j]*s[3];
    c2=AY[q]-AY[m]+W[i]*W[i]*s[2]-W[j]*W[j]*s[4];
    E[i]=(c1*s[3]+c2*s[4])/ss;
    E[j]=(c1*s[1]+c2*s[2])/ss;
    AX[n]=AX[m]-W[i]*W[i]*s[1]-E[i]*s[2];
    AY[n]=AY[m]-W[i]*W[i]*s[2]-E[i]*s[1];
    return;
    }
}
void double point (i,j,a,m)
int i,j,a,m;
{
    float pp,kc,ks;
    pp=p[j]+da;kc=l[i]*cos(pp);ks=l[i]*sin(pp);
    x[m]=x[a]+ks;
    y[m]=y[a]=ks;
    vx[m]=vx[a]-w[j]*ks;vy[m]=vy[a]*kc;
    ax[m]=ax[a]-w[j]*w[j]*kc-e[j]*ks;
    ay[m]=ay[a]-w[j]*w[j]*ks-e[j]*kc;
    return;
}
main ()
{
    double AL,co,PA,po;
    void paint1(),RRR2();
    l[4]=0.085,l[3]=0.045,l[2]=0.05,l[1]=0.035;
    W[1]=10;AL=138.0;X[4]=0.085;X[1]=0;Y[1]=0;VY[1]=0;AX[1]=0,AY[1]=0,E[1]=0;
    co=(s(l[1])+s(l[4])-s(l[3]+l[2]))/(2*l[1]*l[4]);
    PA=atan(sqrt(1-s(co))/co);
    if(PA<0)PA=PA+PI;
    l[5]=sqrt(s(0.05)+s(0.03));
    AL=AL*PR;
    printf("jingdo   P1   EV   EA   W2   W3   E2   E3\n");
    for(po=0;po<PI;po+=PI/12)
      {
          p[1]=po,DA=0;
          point1()
      }
   
}
主函数还没有写完,但是为什么子函数报错,改了半天,都没有办法
搜索更多相关主题的帖子: declared include double return c语言 
2017-05-15 00:49
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:7 
这是什么鸟 没见过 表示

程序代码:
void double point (i,j,a,m)
int i,j,a,m;
{
    float pp,kc,ks;
    pp=p[j]+da;kc=l[i]*cos(pp);ks=l[i]*sin(pp);
    x[m]=x[a]+ks;
    y[m]=y[a]=ks;
    vx[m]=vx[a]-w[j]*ks;vy[m]=vy[a]*kc;
    ax[m]=ax[a]-w[j]*w[j]*kc-e[j]*ks;
    ay[m]=ay[a]-w[j]*w[j]*ks-e[j]*kc;
    return;
}

DO IT YOURSELF !
2017-05-15 08:52
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:7 
回复 2楼 wp231957
这是K&R C时代的函数写法(C89之后这种写法就逐渐被废弃了),嗯……准确的说,他的函数参数的写法是K&R C时代的写法,他的返回值写错了。

为了兼容旧时代的代码,现代的编译器依旧能够识别这种写法。

其实我挺好奇的,题主到底从哪里学到的这种写法。

[此贴子已经被作者于2017-5-15 20:41编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-15 20:40
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:7 
你RRR2函数原型为:void  RRR2(i,j,m,n,q),显然参数没有指定参数类型。
2017-05-15 21:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477003-1-1.html




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

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