C语言!!!!!!!!!!!由键盘输入一个正整数,判断该数是不是为平方数,是输出Y,否则输出N

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言!!!!!!!!!!!由键盘输入一个正整数,判断该数是不是为平方数,是输出Y,否则输出N相关的知识,希望对你有一定的参考价值。

楼主你好。
很简单:
#include <stdio.h>
#include <math.h>
int main()
int input;
while(1)
scanf("%d",&input);
if(input<=0)//判断用户输入是否为正整数
printf("Please input a positive integer!\n");
continue;

printf("%c\n",(pow((int)sqrt(input),2)==input)?'Y':'N');

return 0;

//解释下,sqrt(input)会得到input的平方根,强制转换为int之后只要是非平方数就会丢失小数,导致再求平方之后不再与input相等了。
这样就能符合你的要求了。
输出:
-100
Please input a positive integer!
144
Y
225
Y
123
N
321
N
参考技术A 思路: 将该数开平方得到一个数 , 看是不是整数, 如果是说明是平方数, 否则不是 代码如下:

#include<stdio.h>
#include<math.h>
int main()

double a;
while(scanf("%lf", &a) == 1)
double temp = sqrt(a);
double ans = temp - (int)temp;//这里是用自身减去自身去掉小数部分的整数
if(ans == 0)
printf("Y\n");

else
printf("N\n");


return 0;


希望可以帮到你,如有疑问欢迎追问
参考技术B #include<stdio.h>
#include<math.h>
int main()
double number;
int a;
printf("输入一个数:");
scanf("%lf",&number);
a=sqrt(number);
printf("是否为平方数:");
if(a*a==number)
printf("Y\n");
else
printf("N\n");
return 0;
参考技术C 调用sqrt()

以上是关于C语言!!!!!!!!!!!由键盘输入一个正整数,判断该数是不是为平方数,是输出Y,否则输出N的主要内容,如果未能解决你的问题,请参考以下文章

c语言 从键盘输入正整数m和n,将m到n之间的所有素数存入数组s中,并将s中元素5个一行输出。

c语言输入任意5个实数,按照由大到小排序输出?

c语言程序设计. 由键盘输入两个整数,分别计算这两个数的和、差、积、商,并输出结果。

编写程序,输入一个不多于5位的正整数,要求:(1)输出它是几位数; (2)分别输出每一位数字?

编程 有3个整数a、b、c,由键盘输入,编程序按从小到大的顺序输出它们

C++语言编程求变正整数N的所有因子(包括1与N本身)以及这些因子的和,其中的N值通过键盘输入?