[セットトップ]n以内(nを除く)で同時に3と7で割り切れるすべての自然数の和の平方根sを求め、関数値として返し、最終結果sをファイルout.datに出力します.例えばnが1000の場合、関数値はs=153.90064となります.


ソース:
#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