c语言编程中如何判断一个数是否为整数

作者&投稿:月钓 (若有异议请与网页底部的电邮联系)
如何用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++){
if(i%j==0){
printf("%d不是一个素数。\n",i);
break;

if(j>i/2){
printf("%d是一个素数。\n",i);
break;




方法二:
#include<stdio.h>
int main(){
int a=0;
int num=0;
scanf("%d",&num);
for(inti=2;i<num-1;i++){
if(num%i==0){
a++;


if(a==0){
printf("YES\n");
}else{
printf("NO\n");



方法三:
#include"stdio.h"
int main(){
printf("\t\t\t\t\thelloworld\n");
int a,i;
do{
printf("inputnumberjudgeprimenumber:\n");
scanf("%d",&a);
for(i=2;i<a;i++)
if(a%i==0)break;
if(i==a)
printf("%d是素数\n",a);
else
printf("%d不是素数\n",a);
}while(a!=0);

方法1:
#include<stdio.h>
#include<math.h>
float x;
...
if(fabs(x-(int)x)<1e-8)printf(“x是一个整数
”);
else printf(“x不是一个整数
”);
方法2:
int c=(int)b,d=(int)(b+0.999999)
if(c==d)
printf(“是整数
”);
else
printf(“不是整数
”);

方法3:
float b;
...
if(b-(int)b==0)
printf(“是整数
”);
else
printf(“不是整数
”);
方法4:
float b;
...
if(b!=(int)b)
printf(“不是整数
”);
else
printf(“是整数
”);

C语言判断是否为整数,那么只可能是判断输入的值,或者字符串中的值,是否为整数。

因为一旦存储在变量中,根据变量类型,要么为整数,要么为浮点数,是确定的。 

一、判断思路:

1、整数中,按十进制计算,合法字符为0到9,另外在最初位置可以有符号,即+或者-。

2、对于输入的值,可以先存储到字符串中,这样转换为判断字符串中是否为整数。

3、先判断第一个字符是否为+或者-, 如果是,则从第二个开始判断,否则从第一个开始判断。

4、对每一个需要判断的字符,判断是否在'0'到'9'之间,如果是则合法,否则非法。

5、一旦出现非法字符,说明不是整数。如果所有字符合法,那么是整数。

二、参考代码:

int is_int(char *s)//判断s中是否为整数,如果是返回1,否则返回0.
{
    char* p =s;//p指向s。
    if(*p=='+'||*p=='-')//如果第一个字符为符号,则从第二个开始遍历。
        p++;
    while(*p)//遍历字符串。
    {
        if(*p<'0'||*p>'9') return 0;//出现非法字符,返回0,表示不是整数。 
        p++;//判断下一个字符。
    }
    return 1;//所有都是合法字符,返回1,表示为整数
}
int main()
{
    char s[200];
    gets(s);//读取输入,存到s中。
    if(is_int(s))//判断并输出结果
        printf("%s 是整数
", s);
    else 
        printf("%s 不是整数
",s);
    return 0;
}


这个提法不正确,“一个数”是什么概念?如果一块内存中的数据可以解释成一个数,那这个数可以是整数,也可以是浮点数。如果你要判断用户输入的数是整数还是浮点数,你只能用浮点数来存储,然后判断是否和自己强转的整数形式相等。

int ret;
ret=scanf("%d,%d",&x,&y); //记录scanf函数的返回值
if(ret!=2) //根据scanf函数的返回值,判断输出数据个数或者格式是否错误
{
printf("你输入的数是非整数\n");
while(getchar()!='\n'); //清除输入缓冲区中的错误数据
}

double x;
scanf("%f",&x);
if((int)x==x)
printf("%f是整数",x);

比如double x=2.75;
int y=(int)x;

if(x==y)就是正数


如何用c语言编程,判断一个三位数是否为顺子(不是顺子直接提示出错)?_百...
include<stdio.h> int main(){ int n,a,b,c;scanf("%d",&n);a=n%10;\/\/个位 b=n%100\/10;\/\/十位 c=n\/100;\/\/百位 if((a+2==b+1&&b+1==c)||(a==b+1&&b+1==c+2))printf("该数是顺子");else printf("输入错误");return 0;} 希望能帮到你,望采纳;...

C语言编程:输入某年某月某日,判断这一天是这一年的第几天?
scanf("%d-%d-%d",&y,&m,&d);} \/\/先判断是否为闰年 if((y%4==0 && y%100!=0)||(y%400==0)){\/\/闰年 count=getDaysByMonth(m,d,'r');}else{\/\/平年 count=getDaysByMonth(m,d,'n');} printf("%d-%02d-%02d是今年的第%d天\\n",y,m,d,count);putchar('\\n');} ...

C语言怎么编程判断三角形的形状?
代码如下:include <stdio.h> include <stdlib.h> define EPSINON 1e-3#define ABS(a) (((a)>0)?(a):(-a)) \/\/?:不支持表达式嵌套#define ZERO(x) ((x)>-EPSINON && (x)<EPSINON)#define MAX(a,b) (((a)>(b))?(a):(b))#define MIN(a,b) (((a)<(b))?(a):...

c语言编程 求输入一个0-99的整数,判断其是否为同构数,要求写了程序还要...
include "stdio.h"int main(int argc,char *argv[]){int n;for(n=0;n<100;n++)if(n*n%(n<10 ? 10 : 100)==n)\/\/判断:n*n的值0~9除以10,10~99除以100,然后与n比较是否相等printf("%d ",n);printf("\\n");return 0;}运行结果:...

如何判断一门编程语言是静态语言还是动态语言
可以根据其程序运行时的特点来进行判断。所谓静态的,就是写程序,然后编译成可执行程序运行,在运行时不允许修改程序,或者说修改程序后不编译无法实现修改,因此在程序运行时,你的程序是处于静态状态,也就是无法改变状态。比如:c语言。动态的,就是系统可以逐句执行你的程序,不用事先编译,也叫解释...

C语言编程,判断一个数是否存在于一个数组中
define _CRT_SECURE_NO_DEPRECATE include<stdio.h> include<malloc.h> include include<stdlib.h> int findarray(int*p,int len,int val);int main(void){ int len; \/\/数组中元素个数 int i=0; \/\/数组元素下标 int val; \/\/要搜索的数 printf("请为一个随机数数组设定元素个数len...

C语言编程题 从键盘上输入一年份,判断年份是否为闰年
include<stdio.h> include<stdlib.h> int main(){ int year,flag;printf("Enter year:");scanf("%d",&year);if(year%4==0&&year%100!=0)flag=1;else flag=0;if(year%400==0)printf("%d is a leap year!\\n",year);\/\/是闰年 else printf("%d is not a leap year\\n",year);...

用C语言编程从键盘输入一个正整数,判断其个位数是否为5,若是5则输出...
include <stdio.h> int main(){ int five;printf("输入一个整数:");scanf("%d",&five);while(five>10){ five = five%10;} if(five == 5)printf("yes");else printf("no");return 0;}

在linux中编程,怎么判断打开一个文件是以读、写还是读写模式打开的?求...
O_CREAT 若欲打开的文件不存在则自动建立该文件。O_EXCL 如果O_CREAT 也被设置, 此指令会去检查文件是否存在。文件若不存在则建立该文件, 否则将导致打开文件错误。此外, 若O_CREAT与O_EXCL同时设置, 并且欲打开的文件为符号连接, 则会打开文件失败。O_NOCTTY 如果欲打开的文件为终端机设备时, 则...

c语言编程,输入一些整数,判断其中正数与负数的个数,并分别求出正数与...
代码如下:include "stdio.h"main( ){ int i,iNum,iCount1=0,iCount2=0,iCount3=0;for(i=1;i<11;i++){ printf("请输入10个数:");scanf("%d",&iNum);if (iNum>0)iCount1++; \/*iCount1表示大于0数*\/ else if(iNum<0)iCount2++; \/*iCount2表示小于0的数*\/ else i...

如皋市15170275462: c语言怎么判断一个数是不是整数 -
涂狠森安: float x; int y; scnaf("%f",&x); y=x; if ( y==x ) printf("%d是整数.\n",(int)x); else printf("%f不是整数.\n",x); 当然也可以用简单的条件判断:if ( (int)x==x ) ...

如皋市15170275462: c语言编程中如何判断一个数是否为整数 -
涂狠森安: double x; scanf("%f",&x); if((int)x==x) printf("%f是整数",x);

如皋市15170275462: 怎样用C语言编程判断一个数是整数 -
涂狠森安: a%1 取余,整数的话余数肯定等于零,小数就有零点几几了

如皋市15170275462: 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; } 要是除了数字和小数点,没有别的字符要考虑的话,那么在精度要求不高的情况下: ...

如皋市15170275462: C语言编程:判断输入的一个数是否为整数 -
涂狠森安: 简单来说: double df=0.0; scanf("%lf",&df); if(df==(int)df) {printf("是整数"); } else {printf("不是整数");}

如皋市15170275462: C语言里如何判断输入的一个数是否是整数? -
涂狠森安: 方法很多啊,比如判断每一位是否是数字, 再比如先把字符串atol转换成数字,再转换成字符串,看是否相等.

如皋市15170275462: 怎么用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; }

如皋市15170275462: c语言中怎么判断一个数是否为整数 -
涂狠森安: if(x-(int)x)printf("%g is not an integer.\n",x); elseprintf("%g is an integer.\n",x);

如皋市15170275462: C语言中如何判断一个数是不是整数 -
涂狠森安: 是要判断开平方出来的数是不是整数,如果是就输出,不是就循环,不是让开出的数变成整数.回答:车牌本身就是整数,直接就可以用int型 你不会是想利用函数来救你的平方吧?追问:我说的是车牌号的平方根是整数,不是车牌号本身.回答:你就按其它人回答的吧,强制转换一下类型,有小数就会丢掉

如皋市15170275462: C语言如何判断输入的值是否为整数 -
涂狠森安: #include<stdio.h> void scanf_fun(double *integer_po) { double *count; char xiaoci[88]; printf("请输入三个整数:"); p1: count = integer_po; for (; count <= (integer_po + 2); count++) { scanf_s("%lf", count); while ((int)*count != *count) { printf("输入错误,请重新输入:"); gets_s(xiaoci); goto p1; } } }这是我写的 大家看懂后 稍作修改就可以为自己所用了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网