重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个函数没错,我验证了下,,是你调用了其他函数的问题,,
创新互联公司主要从事网站制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务江口,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
#includestdio.h
#includemath.h
#define e 2
float y(float x)
{
return (-x-1+2*pow(e,x));
}
main()
{
float x=2;
x=y(x);
printf("%f\n",x);
}
首先,你定义的那些函数,最好改为void printst(void),下面那几个也一样,因为这样很容易让人知道你写的函数是什么类型。另外,自己写函数,有 申明过程,就是说,因为你的main在你写的函数的前面,编译器无法知道你的main函数里printst()这些是什么意思,所以,在main前面你要申明,即加上void printst(void);意思是告诉编译器,这个函数已经有了。。。你上面写了3个,我这里只说了一个,每个都要那样。。。
1、库函数拼写错误。如:printf,scanf,等
2、定义的函数名在调用时,函数名拼写错误
3、在执行函数时可能函数体本身的问题,有没有实现该函数
4、检查一下任务栏,一般出现这种问题都是你上一次“运行”的小黑窗还没关。然后你执行“编译”,由于该文件正在被使用,程序没法执行编译,所以就报了这样的错误。
首先,
你把INSERTIONSORT()函数定义在main()函数里面是错误的
其次,
int INSERTIONSORT(r[],10); //这样调用肯定不行啦
其三,
楼主对函数声明,实现,调用还没有最基本的认识。
#include "stdio.h"
#include "conio.h"
int INSERTIONSORT(int r[],int n)
{
int i,j;
r[0]=1;
for(i=2;i=n;i++)
{
r[0]=r[i];
j=i-1;
while(r[j]r[0])
{
r[j+1]=r[j];
j--;
}
r[j+1]=r[0];
}
}
void main(void)
{
int a[10],r[11];
int *p;
int i,j;
for(i=0;i10;i++)
{
p=a[i];
printf("please scan the NO:%d\n",i);
scanf("%d",p);
r[i+1]=a[i];
}
INSERTIONSORT(r,10);
for(i=1;i=10;i++)
{
p=r[i];
printf("form min to max the NO: %d value=%d\n",i,*p);
}
getch();
}
函数调用了,是你写的有问题。
比如你第一次调用 swap(n1,n2),这个时候程序把n1,n2的值传给p1,p2,然后p1,p2的值交换了,但是你需要的n1,n2没有变化。
你改成void swap(int n1,int n2),引用就可以了