C语言 如何判断输入的是数字还是字符
程序如下,运行时如果输入了字母,程序就会跑飞,自己不停的循环,请问怎样才能判断出输入的是一串字母还是一个数,防止死循环?#definePI3.1415926#includ...
程序如下,运行时如果输入了字母,程序就会跑飞,自己不停的循环,请问怎样才能判断出输入的是一串字母还是一个数,防止死循环?
#define PI 3.1415926
#include <stdio.h>
main()
{
double r,v;
printf("\n计算球的体积");
while(r!=0)
{
printf("\n请输入球体的半径(退出请输入0):");
scanf("%lf",&r);
if(r==0)break;
v=4/3*PI*r*r*r;
printf("\n球的半径为%lf,\t\t球的体积为%lf\n",r,v);
}
printf("\n\t\t程序结束!\n\n");
}
如果改成下面这样能防止,但是不能返回正确的错误信息,不知道是因为输入0退出的还是字母造成非法退出,最好能返回错误信息后程序继续运行等待输入半径,进行下一次计算。
#define PI 3.1415926
#include <stdio.h>
main()
{
double r,v;
printf("\n计算球的体积");
while(r!=0)
{ r=0;
printf("\n请输入球体的半径(退出请输入0):");
scanf("%lf",&r);
if(r==0)break;
v=4/3*PI*r*r*r;
printf("\n球的半径为%lf,\t\t球的体积为%lf\n",r,v);
}
printf("\n\t\t程序结束!\n\n");
} 展开
#define PI 3.1415926
#include <stdio.h>
main()
{
double r,v;
printf("\n计算球的体积");
while(r!=0)
{
printf("\n请输入球体的半径(退出请输入0):");
scanf("%lf",&r);
if(r==0)break;
v=4/3*PI*r*r*r;
printf("\n球的半径为%lf,\t\t球的体积为%lf\n",r,v);
}
printf("\n\t\t程序结束!\n\n");
}
如果改成下面这样能防止,但是不能返回正确的错误信息,不知道是因为输入0退出的还是字母造成非法退出,最好能返回错误信息后程序继续运行等待输入半径,进行下一次计算。
#define PI 3.1415926
#include <stdio.h>
main()
{
double r,v;
printf("\n计算球的体积");
while(r!=0)
{ r=0;
printf("\n请输入球体的半径(退出请输入0):");
scanf("%lf",&r);
if(r==0)break;
v=4/3*PI*r*r*r;
printf("\n球的半径为%lf,\t\t球的体积为%lf\n",r,v);
}
printf("\n\t\t程序结束!\n\n");
} 展开
13个回答
展开全部
#include
<stdio.h>
#include
<stdlib.h>
void
main(
)
{
printf("请数输入一个字符:");
char
ch
=
getchar();
if(ch>=
'a'&&ch<=
'z')
printf("该字符是小写字母");
else
if(ch
>=
'a'&&ch
<='z')
printf("该字符是大写字母");
else
if(ch>='0'&&ch
<='9')
printf("该字符是数字");
else
printf("该字符是其他字符")
;
printf("\n")
;
system("pause");
}
<stdio.h>
#include
<stdlib.h>
void
main(
)
{
printf("请数输入一个字符:");
char
ch
=
getchar();
if(ch>=
'a'&&ch<=
'z')
printf("该字符是小写字母");
else
if(ch
>=
'a'&&ch
<='z')
printf("该字符是大写字母");
else
if(ch>='0'&&ch
<='9')
printf("该字符是数字");
else
printf("该字符是其他字符")
;
printf("\n")
;
system("pause");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
他们说的是理论,具体程序我给你吧。
此程序在Microsoft
Visual
C++
6.0下编译并通过
#include<stdio.h>
int
main()
{
char
a;
printf("Input
the
character:");
scanf("%c",
&a);
if(a
>=
'0'
&&
a
<=
'9')
printf("It's
a
number!\n");
else
printf("It's
not
a
number!\n");
return
0;
}
此程序在Microsoft
Visual
C++
6.0下编译并通过
#include<stdio.h>
int
main()
{
char
a;
printf("Input
the
character:");
scanf("%c",
&a);
if(a
>=
'0'
&&
a
<=
'9')
printf("It's
a
number!\n");
else
printf("It's
not
a
number!\n");
return
0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用isdigit函数可以判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询