189 8069 5689

c语言函数调用常见报错 c语言函数调用失败

c语言函数调用的程序运行出来总是出错,,哪位大神帮我看看哪里出问题了

#includestdio.h

网站的建设创新互联建站专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为成都汽车玻璃修复等企业提供专业服务。

int func1(int m,int n)

{

int a;

while(n!=0)

{

a=m%n;

m=n;

n=a;

}

return(m); //这里应该返回m,如果返回a就一直是0

}

int func2(int x,int y)

{

return(x*y/func1(x,y));

}

int main()

{

int j,k;

printf("请输入两个整数:");

scanf("%d%d",j,k);

printf("两个数的最大公约数为%d,两个数的最小公倍数为%d",func1(j,k),func2(j,k));

return 0;

}

c语言 调用函数例子,为什么会报错啊?

首先,你定义的那些函数,最好改为void printst(void),下面那几个也一样,因为这样很容易让人知道你写的函数是什么类型。另外,自己写函数,有 申明过程,就是说,因为你的main在你写的函数的前面,编译器无法知道你的main函数里printst()这些是什么意思,所以,在main前面你要申明,即加上void printst(void);意思是告诉编译器,这个函数已经有了。。。你上面写了3个,我这里只说了一个,每个都要那样。。。

关于C语言中的函数调用问题,出现了以下错误,现贴出程序,请大家帮忙看一看,我是菜鸟....万分感谢!

怀疑你这段代码是不是书上摘来的,连main()函数都没有,修改了下代码,上面四个错误不再出现了,你再把main()函数补上,应该可以运行了。

#include stdio.h

#include "math.h"

#include "stdlib.h"

void iirbcfpass(ns,n,f1,f2,f3,f4,db,b,a)

double b[],a[],f1,f2,f3,f4,db;

int ns,n;

{

int k;

double *d,*c;

double omega,lamda,esslon,fl,fh; //带通不需要omega;lamda;warp();bpsub();omin(),cosh1()

void bwtf();//函数声明

//double cosh1(),warp(),bpsub();omin();

void fblt();//函数声明

fl=f2;

fh=f3;

for (k=0;kns;k++)

{

bwtf(2*ns,k,4,d,c); //求归一化L阶的每一阶的分子、分母系数

fblt(d,c,n,fl,fh,b[k*(n+1)+0],a[k*(n+1)+0]); //计算出低通滤波器系数,然后转化成为带通系数

}

}

static void bwtf(ln,l,k,n,d,c) //求归一化L阶的每一阶的分子、分母系数

int ln,k,n;

double d[],c[];

{

int i;

double pi,tmp;

pi=4.0*atan(1.0);

d[0]=1.0;

c[0]=1.0;

for (i=1;in;i++)

{

d[i]=0.0;

c[i]=0.0;

}

tmp=(k+1)-(ln+1.0)/2.0;

if (tmp==0.0)

{

c[1]=1.0;

}

else

{

c[1]=-2.0*cos((2*(k+1)+ln-1)*pi/(2*ln));

c[2]=1.0;

}

}

static void fblt(d,c,n,fln,fhn,b,a)//计算出低通滤波器系数,然后转化成为带通系数

int n;

double fln,fhn,d[],c[],b[],a[];

{

int i,k,m,n1,n2,ls;

double pi,w,w0,w1,w2,tmp,tmpd,tmpc,*work;

double combin();

void bilinear();

pi=4.0*atan(1.0);

w1=tan(pi*fln);

for (i=n;i=0 ;i-- )

{

if(c[i]!=0.0 || (d[i]!=0.0))

break;

}

m=i; //标示非0值的位置

n2=2*m;

n1=n2+1;

work=malloc(n1*n1*sizeof(double));

w2=tan(pi*fhn);

w=w2-w1;

w0=w1*w2;

for (i=0;i=n2 ;i++ )

{

work[0*n1+i]=0.0; //小心1与l

work[1*n1+i]=0.0;

}

for (i=0;i=m ;i++ )

{

tmpd=d[i]*pow(w,(m-i));

tmpd=c[i]*pow(w,(m-i));

for (k=0;k=i ;k++ )

{

ls=m+i-2*k;

tmp=combin(i,i)/(combin(k,k)*combin(i-k,i-k));

work[0*n1+ls]+=tmpd*pow(w0,k)*tmp;

work[1*n1+ls]+=tmpc*pow(w0,k)*tmp;

}

}

for (i=0;i=n2 ;i++ )

{

d[i]=work[0*n1+i];

c[i]=work[1*n1+i];

}

free(work);

bilinear(d,c,b,a,n);//合并每个级的系数到一个大的传递函数系数集合

}

static double combin(i1,i2)

int i1,i2;

{

int i;

double s;

s=1.0;

if (i2==0) return(s);

for (i=i1;i(i1-i2) ;i-- )

{

s*=i;

}

return(s);

}

static void bilinear(d,c,b,a,n)

int n;

double d[],c[],b[],a[];

{

int i,j,n1;

double sum,atmp,scale,*temp;

n1=n+1;

temp=malloc(n1*n1*sizeof(double));

for (j=0;j=n ;j++ )

{

temp[j*n1+0]=1.0;

}

sum=1.0;

for (i=1;i=n;i++)

{

sum=sum*(double)(n-i-1)/(double)i;

temp[0*n1+i]=sum;

}

for (i=1;i=n ;i++ )

for (j=1;j=n ;j++ )

{

temp[j*n1+i]=temp[(j-1)*n1+i]-temp[j*n1+i-1]-temp[(j-1)*n1+i-1];

}

for (i=n;i=0 ;i-- )

{

b[i]=0.0;

atmp=0.0;

for (j=0;j=n ;j++ )

{

b[i]=b[i]+temp[j*n1+i]*d[j];

atmp=atmp+temp[j*n1+i]*c[j];

}

scale=atmp;

if (i!=0)

{

a[i]=atmp;

}

}

for (i=0;i=n ;i++ )

{

b[i]=b[i]/scale;

a[i]=a[i]/scale;

}

a[0]=1.0;

free(temp);

}


文章标题:c语言函数调用常见报错 c语言函数调用失败
分享路径:http://cdxtjz.cn/article/doiceei.html

其他资讯