c语言程序:编写函数,判断一个正整数是否为完全平方数,并输出100以内的完全平方数。

2024-11-27 11:34:02
推荐回答(3个)
回答1:

*/

package questions;

public class Q10

{

public static void main(String[]args)

{

int n=0;

for(int i=0;i<=100000;i++)//先确定一个在100000内的大概范围

{

if(isCompSqrt(i+100))

{

n=i;

break;

}

}

System.out.print("所求的数是:"+n);

}

private static boolean isCompSqrt(int p)//判断完全平方数的方法

{

boolean flag=false;

double fsqrt=Math.sqrt(p);//先将数开平方

int q=(int)fsqrt;//转换成整数,另q为开平方且转换为整数的结果。

if(p==Math.pow(q,2))//pow(x,y)就是计算x的y次幂。把开平方后的整数再平方,看看它和开平方之前的数是不是相等。

{

flag=true;

}

return flag;

}

}

扩展资料:

return用法:

作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。

函数的定义一般是这样的,例如:

int a(int i)//第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字

{

...//省略函数体内容

return b;//b必须与函数头的返回值一致(此处为int型)

}

简单函数举例:

int addOne(int b)

{

return b+1;

}

该函数的作用是取得一个数,将这个数加上1,再将结果返回

调用时这样:

int result=addOne(2);//此时result的值为3

函数括号里的参数也可以为变量或能算出值的表达式

以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)

但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如

void print()//括号中为空表示无传递参数

{

printf("a");

printf("b");

return;//函数执行到此处结束

printf("c");

}//该函数只执行到return语句处,即屏幕上输出的为"ab"

回答2:

#include 
#include  

int isfullsquare(unsigned long n);

int main(void) 
{
unsigned long i;
for(i=0;i<=100;i++)
{
if(isfullsquare(i))
{
printf("%lu\n",i);
}
}
return 0;
}

int isfullsquare(unsigned long n)
{
return n==(unsigned long)(sqrt((double)n)+1e-6)*(unsigned long)(sqrt((double)n)+1e-6);
}

回答3:

#include
int ispf(int n){
int i=0;
for(;i*i<=n;i++)
if(i*i==n)return 1;
return 0;}
int main(){
int n,i;
scanf("%d",&n);
printf(ispf(n)?"是\n":"不是\n");
for(i=1;i<=10;i++)printf("%d ",i*i);
return 0;}