怎么用c语言判断一个数是否为整数(这个数是开平方出来的)?
#include #include //sqrt()所在void main(){ int a; scanf("%d", &a ); printf("%f
", sqrt(a) ); //调用sqrt()函数得到平方根}
用math.h里封装好的函数,具体如下:
求平方根:double sqrt(double x)
例:
#include
#include
int main(void)
{
double x = 4.0, result;
result = sqrt(x);
printf("The square root of %lf is %lf
", x, result);
return 0;
}
扩展资料:关于c语言的基本运算
1.加法运算符 +
int a = 10;int b = a + 5;
在第3行利用加法运算符 + 进行了加法运算,再将和赋值给了变量b,最终变量b的值是15
2.减法运算符 或 负值运算符 -
int b = 10 - 5;int a = -10;
1> 在第1行利用减法运算符 - 进行了减法运算,再将差赋值给了变量b,最终变量b的值是5
2> 在第3行中,这个 - 并不是什么减法运算符,而算是一个负值运算符,-10代表的是负十
3.乘法运算符 *
int b = 10 * 5;
注意:乘法运算符并不是x或者X,而是星号*。变量b最终的值是50。
4.除法运算符 /
double a = 10.0 / 4;
double b = 10 / 4;printf("a=%f, b=%f
", a, b);
注意:除法运算符并不是÷,而是一个正斜杠 /
1> 第1行中的10.0是浮点型,4是整型,因此会将4自动类型提升为浮点型后再进行运算,最后变量b的值是2.5
2> 第2行中的10和4都是整型,计算机中的运算有个原则:相同数据类型的值才能进行运算,而且运算结果依然是同一种数据类型。因此,整数除于整数,求出来的结果依然是整数,会损失小数部分。最后变量b的值是2。
5.模运算符或称取余运算符 %
注意:这个%并不是除号÷,它是一个取余运算符,或者叫做模运算符。取余的意思是,取得两个整数相除之后的余数。比如,5除于2的余数是1,5除于3的余数是2。因此使用这个%有个原则:%两侧必须都为整数。
错误的写法:1 int a = 5.0 % 2;
编译器会直接报错,因为5.0并非整数。
因为实型和整型变量是不能直接比较的,要做一步类型转换才能比较首先要明确允许的误差是多少。比如一般情况误差的绝对值小于10-8时我们可以认为两个实数是相等的。
代码如下
#include <stdio.h>
#include <math.h>
main()
{
float b,c;
c=1;
while(c>=0) //如果输入小于0,就结束程序
{
scanf("%f",&c);
b=sqrt(c);
if (fabs(b-(int)b)<1e-8) printf("%.0f的开平方是个整数
",c);
elseprintf("%.0f的开平方不是整数
",c);
}
}
结果
如果这个数是n,一般如是if(n==(int)n) printf("It is a integer.\n"); else printf("It is not a integer.\n");判断就可以了。但这不100%准确,因为同一个整数用int表达和用double表达实际上是有差别的,所以当浮点数与整型数相差非常非常小时可能会误判。
if(fabs(x-(int)(x+0.5))<1e-5)printf("%d是一个整数",(int)(x+0.5));
这里把它与相应整数的差小于0.00001,就视为它就是一个整数。
C语言中,如何表示“真”还是“假”?系统如何判断一个量的“真”和“假...
C语言编译系统在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”。 比如:a、b的值分别是0、4,则a||b的值为1,a&&b的值为0。但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。比如:a=4,因为a的值为非0,被认作“真”,所以对它进行“非”运算!a=0 。其实...
c语言编程中如何判断一个数是否为整数
C语言判断是否为整数,那么只可能是判断输入的值,或者字符串中的值,是否为整数。因为一旦存储在变量中,根据变量类型,要么为整数,要么为浮点数,是确定的。一、判断思路:1、整数中,按十进制计算,合法字符为0到9,另外在最初位置可以有符号,即+或者-。2、对于输入的值,可以先存储到字符串中,...
如何用c语言编程判断一个数是不是素数?
方法一:#include<stdio.h> int main(){ int i,j;printf("请输入一个正整数。\n");scanf("%d",&i);if(i<2)printf("小于2,请重新输入。\n");elseif(i%2==0)printf("%d不是一个素数。\n",i);else{ for(j=2;j<=i/2;j++){ ...
用C语言怎么判断一个字符串是否为空?
空格不算是空字符串,str=""这样的才算是空字符串,里面什么都没有,而str=" "是有内容了,这个str存储了一个字符(空格),如果你要把空格也算是空字符串,那么要稍作修改:char str[] = " ";int len = strlen(str), i = 0;if (len > 0){ while(i < len && str[i++] == ' ...
在c语言编程中,要如何判断一个数是否为整数?
方法1:include<stdio.h> include<math.h> float x;...if(fabs(x-(int)x)<1e-8)printf(“x是一个整数\\n”);else printf(“x不是一个整数\\n”);方法2:int c=(int)b,d=(int)(b+0.999999)if(c==d)printf(“是整数\\n”);else printf(“不是整数\\n”);方法3:float b;...if...
c语言怎么判断一个数是不是整数
方法1:include<stdio.h> include<math.h> float x;...if(fabs(x-(int)x)<1e-8)printf(“x是一个整数\\n”);else printf(“x不是一个整数\\n”);方法2:int c=(int)b,d=(int)(b+0.999999)if(c==d)printf(“是整数\\n”);else printf(“不是整数\\n”);方法3:float b;...if...
C语言怎么判断一个数是否是回文数?
所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。以下是判断一个数是否为回文数的代码:大致思路就是将一个数反着排列一遍,如果和原先的数一样,那么就是回文数。这个排列过程用到了余数和整除。比如986,经过排列后为689,就不是回文数。
用c语言,编写程序判断一个正整数x在二进制下的位数
输入:128,输出:8 include<stdio.h>#include<stdlib.h>#include<string.h>int main(){char a[10000];\/\/定义一个字符型数组,最多可以容纳10000位,可修改 memset(a,'\\0',10000*sizeof(char));\/\/对数组初始化 int n;scanf("%d",&n);itoa(n,a,2);\/\/改变成2进制,n是要转化的整数...
如何用c语言输入一个整数并判断奇偶性?
include"stdio.h"main(){ inta,b,c,t;printf("pleaseinputa,b,c:");scanf("%d,%d,%d",&a,&b,&c);t=a;a=b;b=c;c=t;printf("%d,%d,%d",a,b,c);getch();}
如何用c语言编写程序,输入一个数n不一定是整数,判定n是小于0,等于0还是...
你可以使用条件语句(if-else语句)来判断输入的数n是小于0、等于0还是大于0。下面是一个使用C语言编写的示例程序:```c include <stdio.h> int main() { double n;printf("请输入一个数:");scanf("%lf", &n);if (n < 0) { printf("输入的数是负数\\n");} else if (n == 0)...
舌食聚乙: float a; scanf("%f",&a); if ( a==(int)a ) printf("%.0f是整数\n",a); else printf("%f不是整数\n",a);
弓长岭区18961827637: 怎么用C语言判定一个输入的一个数是不是整数??
舌食聚乙: #include<stdio.h> //#include<stdlib.h> int main() { int a; float b; scanf("%f",&b); a=b; if(a==b) printf("YES"); else printf("NO"); //system("pause"); return 0; }
弓长岭区18961827637: c语言 判断一个数是不是整数 - ?
舌食聚乙: #include<stdio.h> int main() {float a; int b;scanf("%f",&a);b=a;if( a- (float)b==0.0) printf("Yes\n");else printf("No\n");return 0; }
弓长岭区18961827637: C语言里如何判断输入的一个数是否是整数? - ?
舌食聚乙: 方法很多啊,比如判断每一位是否是数字, 再比如先把字符串atol转换成数字,再转换成字符串,看是否相等.
弓长岭区18961827637: c语言中怎么判断一个数是否为整数 - ?
舌食聚乙: if(x-(int)x)printf("%g is not an integer.\n",x); elseprintf("%g is an integer.\n",x);
弓长岭区18961827637: C语言如何判断输入的值是否为整数?
舌食聚乙: 你好、嵌套一个IF语句,让每输入的一个字符都进入IF进行判断~也就是对输入的那个数进行取整操作,然后把取整的结果和输入的原数字进行相差,如果结果等于0的话你输入的数就是整数,如果结果不为0的话输入的数就是小数~~当然算法不是唯一的~ IF 取整(输入的数)的结果 — 输入的数 =0 整数 ELSE 小数 祝愉快!
弓长岭区18961827637: C语言编程:判断输入的一个数是否为整数 - ?
舌食聚乙: 简单来说: double df=0.0; scanf("%lf",&df); if(df==(int)df) {printf("是整数"); } else {printf("不是整数");}
弓长岭区18961827637: C语言如何判断输入的值是否为整数 - ?
舌食聚乙: #include<stdio.h> int main() { double x; printf("请输入一个数:"); scanf("%lf",&x); if((int)x==x) printf("%lf是整数",x); else printf("%lf不是整数",x); return 0; }
弓长岭区18961827637: C语言中如何判断一个数是不是整数 - ?
舌食聚乙: 是要判断开平方出来的数是不是整数,如果是就输出,不是就循环,不是让开出的数变成整数.回答:车牌本身就是整数,直接就可以用int型 你不会是想利用函数来救你的平方吧?追问:我说的是车牌号的平方根是整数,不是车牌号本身.回答:你就按其它人回答的吧,强制转换一下类型,有小数就会丢掉
弓长岭区18961827637: C语言编程,如何判断一个数是不是整数??
舌食聚乙: 先读取它,保存在字符串中,然后对它进行判断. int isinteger(char *s) { int i=0; if(s[0]=='-'||s[0]=='+') i++; for(;s[i];i++) {if(!isdigit(s[i]))return 0; } return 1; } 要是除了数字和小数点,没有别的字符要考虑的话,那么在精度要求不高的情况下: ...