当前位置:首页 » 编程语言 » 数字判断c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数字判断c语言

发布时间: 2022-10-11 02:16:22

c语言 判断一个数的位数

代码如下:

#include<stdio.h>

int main()

{

int a,b;

int i;

printf("请输入一个数字:");

scanf("%d",&a);

b=a;

for(i=0;a>1;i++)

{

a=a/10;

}

printf("%d是%d位数 ",b,i);

}

(1)数字判断c语言扩展阅读:

思路详解:

在C语言中,经常会用到以整数相除来确定一个整形数字的每一位的具体数字是多少,同理,此处可用整数相除来判断一个数的位数。

首先,使用scanf函数获取这个数字的值,且赋给变量b,作一个备份。

接着,确定核心思路为,当一个数整除10,第一次结果为1时,这个数是一个个位数。因而,以其作为循环内的主体。

得到了for(i=0;a>1;i++) a=a/10; 这样的代码,最后,输出结果即可。

❷ C语言 如何判断输入的是数字还是字符

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始的.cpp文件,例如:test.cpp。

❸ C语言,如何判断一个数是数字啊

用scanf()从键盘输入读入一个字符串(注意别越界),之后编个循环检测每个字符,若存在不是字符'.',且>'0',<'9'的字符,那就不是数字,字符'.'若出现一次以上也不是数字。

❹ c语言判断每位数字是否相同

#include"stdio.h"
void
main()
{
int
n,m=0,i=0,a[100],s=0,t;
while(scanf("%d",&n)!=EOF)
{
i=0;
s=0;
//////////////////////这里要重新初始化i和s,不然第一次循环改变了他们的值,以后运行就不对了
while(n!=0)
{
a[i]=n%10;
i++;
n=n/10;
}
m=i;
for(i=0;i<m-1;i++)
{
t=a[i]-a[i+1];
if(t==0)s++;
}
if(s==m-1)
printf("yes\n");////////////////////这里应该是s==m-1
else
printf("no\n");
}
}
这个程序还有一个问题,就是当输入的数超过整数的范围,运算就会出错,a数组那100个单元都是浪费90多个,如果要程序更完善,建议用字符数组来定义。
下面是用字符数组来做的
#include"stdio.h"
void
main()
{
int
n,m=0,i=0,s=0,t;
char
a,b[100];
while(scanf("%s",b)!=EOF)
{
i=0;
s=0;
for(i=0;b[i]!='\0';i++);
m=i;
for(i=0;b[i]!='\0';i++)
{
a=b[1];
if(a==b[i])s++;
else
break;
}
if(s==m)
printf("yes\n");
else
printf("no\n");
}
}

❺ c语言中如何判断输入的是否数字

这个程序不难写,我告诉你思路和算法,你根据这个编写代码就可以了。
1.由于你输入的这一串数据可能都为数字,也可能包含其它字符,所以首先用一字符数组存放这个字符串。
2.用strlen函数计算这个字符串的长度,在此基础上借助for循环或while循环实现数组元素的遍历。
3.遍历每一个元素的同时用if语句判断这个元素的ascii码所在的范围是否在48~57之间,如果不在则中止循环,输出判断结果(即不是数字)。
4.如果最后一个元素仍然是数字,则整个字符串则为一个大数。

❻ c语言判断输入是否为数字

你写的这个有太多的错误。至于定义数组的时候a[N]这种错误我就不讲了
还有在循环里面(i=1;i<N;i++)
N没赋值就调用的错误我也不讲了
讲你的死循环问题
你没有给循环加一个限制条件
根据你continue的意思我暂时理解为
如果输入的不是数字
那么一直循环
重新输入
一直到你输入的是数字为止跳出循环
对吗?
while(1){
printf("请输入要查的值\n");
ret=scanf("%d",&n);
printf("ret=%d\n",ret);
if(ret==0){
printf("输入错误,请重新输入\n");
continue;
}
break;
}
这样就可以
如果输入的是数字
scanf的返回值为1
那么循环的第一次
不会进入if(ret==0)
也就是说
如果输入的是数字
直接执行break跳出循环
如果输入的不是数字
循环的时候执行语句if(ret==0)
然后执行continue
continue的意思是跳出当前循环继续下一次循环
即执行到continue之后从新循环而不会执行到break
以此类推
只要你输入的不是数字
则永远循环
输入的如果是数字
跳出循环
执行完毕。
大哥
如果小弟回答正常
给点分吧
多谢
=================================================================
另外对于一楼的同学
我必须有好的提醒你scanf()的用法以及返回值的相关问题
我想你肯定不知道
scanf("%d",&i)
如果你输入的是int型则返回1
否则返回0
换句话说即你输入的类型和scanf()里面预先定义的类型一致
则返回1
否则返回0
THANK
YOU

❼ c语言中如何判断输入的是字符还是数字

1、可以用sacnf或gets函数直接接收输入的字符串,然后用循环遍历字符串中每一个字符,判断其是字母还是数字。

2、可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字。

3、假设字符c,满足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母,满足 (c>=0 && c<=9)就是数字。

(7)数字判断c语言扩展阅读:

getch():

所在头文件:conio.h

函数用途:从控制台读取一个字符,但不显示在屏幕上

函数原型:int getch(void)

返回值:读取的字符

例如:

char ch;或int ch;

getch();或ch=getch();

用getch();会等待你按下任意键,再继续执行下面的语句;

用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。

❽ C语言:如何判断输入的是数字还是其他字符

有很多方法:
1、可以用sacnf或gets函数直接接收输入的字符串,然后用循环遍历字符串中每一个字符,判断其是字母还是数字。
2、可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字。
至于怎么判读是字母还是数字,很简单,假设字符c,
满足 (c>='a'&& c<='z')|| (c>='A' && c<='Z')就是字母。
满足 (c>='0' && c<='9')就是数字。