[セットトップ]n以内(nを除く)で同時に3と7で割り切れるすべての自然数の和の平方根sを求め、関数値として返し、最終結果sをファイルout.datに出力します.例えばnが1000の場合、関数値はs=153.90064となります.
ソース:
しかし、コンパイル時に表示されます: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
#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
",sum);
s=sqrt(sum);// double
return s;
}
main()
{
int n;
double s;
scanf("%d",&n);//0%n=0
s=get_s(n);
printf("%f
",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