重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
给你一个检验输入是否为整数的函数getint(),调用时只需要如下语句:int i = getint()就可以读入一个整数了。
成都创新互联公司专注于巴中网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供巴中营销型网站建设,巴中网站制作、巴中网页设计、巴中网站官网定制、微信平台小程序开发服务,打造巴中网络公司原创品牌,更为您提供巴中网站排名全网营销落地服务。
/***************该函数检验输入是否为整数*********************/
#include stdio.h
#include stdlib.h
int getint ()
{
char c[20];
int i = 0;
label:
/* 读入一个字符串 */
scanf ("%s", c);
/* 检查该字符串是否为数字 */
while (c[i] != '\0'){
/* 如果有一个字符的ASCII码小于48或者大于57,则输出提示信息,返回label语句,重新读入 */
if (c[i]48 || c[i]57){
printf ("输入变量类型不正确\n");
printf ("请重新输入一个整数:");
i = 0; /* 循环变量清零不能忘!*/
goto label;
}
i++;
}
/* 如果全部为整数,则将字符串转化为整数 */
return atoi (c);
}
int input(char s[31],data *p) //输入函数,用于使用户按要求输入账务信息
{
char c;
printf("请输入%s时间:\n年份:",s);
scanf("%d",p-year);
while ((c = getchar()) != '\n' c != EOF ) ;/*清空缓冲区*/
for(;;) //循环判断用户输入数据,直至符合要求
{
if(p-year0) //年份不能为负数啊,额,我是说公元前的人应该用不到这个程序
{
printf("%s年份输入错误,请重新输入:\n年份:",s);
scanf("%d",p-year);
while ( (c = getchar()) != '\n' c != EOF ) ;/*清空缓冲区,这是必须的,当然有其它多种清除缓冲区的办法,百度一下*/
}
else break;
}
printf("请输入%s金额:\n金额:",s);
scanf("%lf",p-amount);
while ( (c = getchar()) != '\n' c != EOF ) ; /*清空缓冲区*/
for(;;)
{
if(p-amount0)
{
printf("%s金额输入错误,请重新输入:\n金额:",s);
scanf("%lf",p-amount);
while ( (c = getchar()) != '\n' c != EOF ) ;/*清空缓冲区*/
}
else break;
}
printf("请输入%s备注:\n备注:",s);
gets(p-note);
return 0;
}
使用ctype.h里面isdigit()和isalpha函数就可以判断了
#include ctype.h
#include stdio.h
int main()
{
printf("1 是数字吗? %s\n",isdigit('1')?"是":"不是");
printf("a 是字母吗?%s",isalpha('a')?"是":"不是");
return 0;
}
应该输入一个四位数而不是输入四个一位数,这样才符合使用习惯。这样的话,你一次读完即:
scanf("%d",n);
判断这个数是否大于1000且小于10000(如果不是,则不是4位数,同时排除了负数)
取出各位数字,然后看是否有相等的。取千位数:x=n/1000; 取百位数:y=(n-x*1000)/100; 取十位数:z=(n-x*1000-y*100)/10 取个位数:w=n%10;