请编写函数fun,其功能:给定一个整数n(n<10000),如果n加上100后是一个完全平方数(所谓“完全平方数”,就是开方后的结果是整数的数),并且n加上268后也是一个完全平方数,则函数值返回1,否则返回0。 注意:部分源程序在文件PROG1

admin2022-10-25  33

问题 请编写函数fun,其功能:给定一个整数n(n<10000),如果n加上100后是一个完全平方数(所谓“完全平方数”,就是开方后的结果是整数的数),并且n加上268后也是一个完全平方数,则函数值返回1,否则返回0。
     注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
     #include<stdio.h>
     #include<math.h>
     int fun(long n)
{
int  main()
{
   long i;
   FILE*fp=fopen(”out.dat”,”w”);
   for(i=1;i<10000;i++)
   {
     if(fun(i))
     {
       printf(”%ld\n”,i);
       fprintf(fp,”%ld\n”,i);
     }
   }
     return 0;
}

选项

答案 int s1,s2; s1=sqrt((double)n+100); s2=sqrt((double)n+268); if(s1==sqrt((double)n+100)&&s2==sqrt((double)n+268)) return 1; else return 0:

解析 定义整型变量s1和s2,开平方的函数为sqrt(          )。s1=sqrt((double)n+100)表示将开平方后的结果的整数部分赋值给s1.s2=sqrt((double)n+268)表示将开平方后的结果的整数部分赋值给s2,然后通过s1==sqrt((double)n+100)来判断s1与sqrt((double)n+100)开平方的结果是否相等,若相等,则说明sqrt((double)n+100)的结果为整数。同理,判断sqrt((double)n+268)的结果是否为整数。s1==sqrt((double)n+100)和s2==sqrt((double)n+268)两个条件都成立,则返回1,否则返回0。
转载请注明原文地址:https://kaotiyun.com/show/3Ckp777K
0

最新回复(0)