源程序:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <errno.h>
double get_s(int m)
{ int i;
double s;
int sum=0;
for(i=0;i<m;i++)
{
if((i%3==0)&&(i%7==0))
sum+=i;
}
printf("%d\n",sum);
s=sqrt(sum);//返回为double
return s;
}
main()
{
int n;
double s;
scanf("%d",&n);//0%n=0
s=get_s(n);
printf("%f \n",s);
FILE *fd;
if((fd=fopen("out.bat","w+"))==NULL)//这里返回的是一个指针,应为NULL,不是-1
{
perror("fopen");
exit(1);
}
fprintf(fd,"%f",s);
}
但编译时会出现:square.c:(.text+0x8c): undefined reference to `sqrt'
这是因为没能找到math.h 应该这样编译:
qust@qust-K42JZ:~/test$ gcc square.c -o square -lm
qust@qust-K42JZ:~/test$ ./square