C语言如何判断,输入的是数字。如果不是则输出重新输入的信息。 如不能输入12B. 25L只

作者&投稿:国芳 (若有异议请与网页底部的电邮联系)
c语言怎么判断输入的是一个整数,不是则重新输入~

这是一道题还是两道题?在这里我就先按两道题写了:
判断是否是闰年:
main()

int Year;
scanf(“%d”,&Year);
if(Year9999)
{
if((Year%4==0 && Year%100!=0) || Year%400==0)
printf("%d年是润年",Year);
else
printf("%d年不是润年",Year);

else
{
printf("请输入正确的年份");
}
}

判断是否为整数:
main()
{
int Number;
scanf(“%d”,&Number);
while((int)Number!=Number)
{ //将输入的书强制转换为整形,如果两个数一致则输入的为整数
printf("不是整数,请重新输入:");
scanf(“%d”,&Number);
}
}

scanf函数的返回值是输入数据与格式匹配的数量,所以可以利用scanf的返回值来判断输入是否正确:
#include float add(float x, float y){return x + y;}float minus(float x, float y){return x - y;}float multiply(float x, float y){return x*y;}float division(float x, float y){return x / y;}int main(){//定义变量float a, b, result;int choose;do{//输入数据printf("1. 加法 2. 减法
");printf("3. 乘法 4. 除法
");printf("0. 退出程序
");printf("请选择:
");scanf("%d", &choose);if (choose != 0){printf("请输入两个数: ");//=========================//scanf返回值是输入数据与格式相匹配的数量while (getchar() != '
'); //先清空输入缓冲区,因为选择的时候可能会输入"2a"这样的情况while (2 != scanf("%f %f", &a, &b)){printf("输入错误!请重新输入:");while (getchar() != '
'); //清空输入缓冲区}//===========================}switch (choose){case 1:result = add(a, b);printf("result=%.2f
", result);break;case 2:result = minus(a, b);printf("result=%.2f
", result);break;case 3:result = multiply(a, b);printf("result=%.2f
", result);break;case 4:{if (b == 0){printf("结果错误
");}else{result = division(a, b);printf("result=%.2f
", result);}}break;case 0:printf("欢迎再次使用本软件,再见!
");break;default:printf("输入错误
");}} while (choose != 0);return 9;}

用gets读行,然后对每一个字符分析,如果都是数字,再把字符串转换为数值类型。

代码如下所示:

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char str[10];
    int bad_flg = 0;    //输入错误
    do {
        printf("请输入数字
");
        gets(str);
        int len = strlen(str);
        for (int i = 0; i < len; i++) {
            if (!isdigit(str[i])) {
                bad_flg = 1;
                break;
            }
        }
    } while (bad_flg);

    int va = atoi(str);
    printf("%d
", va);
}


可以通过正则表达式来判断

  1. 可以用链表或者字符数组来存储(我以数组为例),然后判断数组中元素是不是数字,

  2. 也就是是否介于48~57(ASCII)之间。

  举例:

#include <stdio.h>


int main()

{


int i=0;

int flag=0;

char a[100];


while(1)

{

scanf("%s",a);

i=0;

flag=0;

while(a[i])

{

if(a[i]<48 || a[i]>57)//a[i]不是数字时

{

flag=1;//做个标志,表示输入不合法

printf("您的输入不合法!
");

break;

}

i++;

}

if(!flag)

{

puts(a);

}

}

return 0;

}




如何用c语言实现输入整数并判断?
1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...

C语言,如何判断输入一个ID的格式是否正确?
正确。拆分出来相应的ASCII,判断其范围,字母是'a'~'z' 和 'A'~'Z',数字是'0'~'9'。include <stdio.h> include <ctype.h> bool legalID(char *ID){ int i = 0;while(i < 2)if(!isalpha(ID[i++]))return false;while(i < 6)if(!isdigit(ID[i++]))return false;return I...

BASIC语言里面如何判断是否输入了?
你可以把INPUT个值给一个变量 在运行完INPUT之后再判断那个变量是否为空或自己定义的格式(比如全是数字或全是字母等等)如果TRUE 继续 如果FLASE 重新输入

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

C语言如何判断输入结束
1、可以使用EOF来判断输入是否结束。scanf()函数是有返回值的,成功读入的数据个数其返回值,没有数据被读入,返回0,如果发生错误,则返回EOF。scanf()函数是读入函数的之一,还有用于数据文件读入的fscanf()等。fscanf()在遇到文件结束符时返回EOF。2、例如:while(scanf("%d",&n)!=EOF);

C语言中,如何判断输入变量为字符串?
int main() { char str[200];while (1) { printf("请输入: "); \/\/ 输出提示信息 scanf("%s", str); \/\/ 等待从键盘读入一个字符串到变量str里 \/\/ 使用C库函数strcmp判断输入的字符串,strcmp返回0时表示相同 \/\/ 若要忽略大小写,可以使用strcasecmp函数 if (strcmp(str, "sapphire") =...

如何用c语言实现“判断用户输入一个值为正整数,如果不是提醒用户重新输...
可以让用户输入一个字符串,然后检查每个字符是否是0~9中的任意一个,如果不是,则不是正整数。当然这里会允许000123这样的情况出现,即数字可以用0开头。如要处理,还需另外考虑,如果不考虑这个问题,可以写成如下的代码 include <stdio.h>main(){ char input[BUFSIZ]; printf("Input a positive...

c语言 如何判断输入的是数字还是字母
1、首先,打开C语言编译器,新建一个初始的.cpp文件,例如:test.cpp。2、其次,在test.cpp文件中,输入C语言代码:char a = getchar(); getchar();if (a <= '9' && a >= '0') printf("数字");else printf("字母");3、然后,编译器运行test.cpp文件,输入数字,此时会成功判断输入...

C语言 ——如何判断输入的是数值以外的其它数
如果输入1_@_100,则i=2;如果输入12_100_-1,则i=3;如果输入@_w_A,则i=0.本题的一个完整的c程序如下,已在win-tc和Dev-c++下调试通过。include "stdio.h"include "stdlib.h"include "conio.h"main(){ int a;printf("欢迎使用成绩等级判定系统,请输入您的成绩:");loop:while (scanf...

C语言问题输入几个字符,怎么判断输入的是几个字符
一般都要约定一个结束标记的 比如 以换行作为结束 或者以#作为结束 或者 以EOF作为结束等等 如果不约定结束 那么是没办法知道是否输入完毕的。

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

太仆寺旗19230867341: c语言 怎么判断输入的是不是数字? -
甄药泰白: 你的意思是输入的如果不是数字,就提示输入不对,然后接着之前的重新输入吗?

太仆寺旗19230867341: C语言:从键盘输入一个字符,可以是数字、字母或标点符号,对输入的字符进行判断:如果是数字则输出“*is a n -
甄药泰白: #include "stdio.h" void main() {char ch;scanf("%c",&ch);if(ch>='0'&&ch<='9')printf("this is a number\n"); else if((ch>='a' && ch<='z')&&(ch>='A' && ch<='Z'))printf("this is a letter\n"); else printf("this is the other\n"); } 修改完毕

太仆寺旗19230867341: C语言如何判断,输入的是数字.如果不是则输出重新输入的信息. 如不能输入12B. 25L只 -
甄药泰白: 用gets读行,然后对每一个字符分析,如果都是数字,再把字符串转换为数值类型.代码如下所示:#include <stdio.h>#include <ctype.h>#include <stdlib.h>#include <string.h> int main() { char str[10]; int bad_flg = 0; //输入错误 do { printf("请...

太仆寺旗19230867341: c语言编程如何区分输入的是数字 -
甄药泰白: 可以这样.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16#include <stdio.h> intmain(void) {charch;while(1){ch=getchar();if(ch>'0'&& ch <'9'){getchar();printf("next\n");}elsebreak;}return0; 如果你要求输入一个字符串,然后判断是不是...

太仆寺旗19230867341: C语言用函数判断输入的是否是数字,如果是进行运算,如果不是输出输入错误,【给以下代码添加上述功能】 -
甄药泰白: scanf函数的返回值是输入数据与格式匹配的数量,所以可以利用scanf的返回值来判断输入是否正确:#include float add(float x, float y) { return x + y; } float minus(float x, float y) { return x - y; } float multiply(float x, float y) { return x*y; } float division(float...

太仆寺旗19230867341: 我是一个自学新手,我想问下在C语言里面怎么判定输入的是字符还是数字? -
甄药泰白: 可以if语句判断.例如判断是不是数字,可以用下面这条if语句判断 if('0'<=ch && ch<='9') printf("ch is digit\n"); 此外,提醒一下,数字也是字符.你说的是判断是字母还是数字吧?如果想判断是不是字母,这么判断: if(('a'<=ch && ch<='z') || ('A'<=ch && ch<='Z'))printf("ch is alphabet“);

太仆寺旗19230867341: C语言中如何实现验证输入的是否为数字? -
甄药泰白: 先按字符串输入,然后对字符串进行检查,判定是否符合条件,若符合条件,则转为数值输出.代码如下: #include #include #include int chk_data( char *num ) { int i; for( i=0;num[i];i++ ) { if ( num[i] >'9'|| num[i] <'0' ) //只要有非数字,就返回错误 ...

太仆寺旗19230867341: C语言 如何判断输入的是数字还是字符 -
甄药泰白: 你这个程序与“输入的是字符还是数字”没有关系. 关键是不能用double类型的r与0直接这样进行比较:r!=0应该像下面这样写: const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON) 不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式.

太仆寺旗19230867341: 如何判断输入的字符是数字,字母还是其他字符 C语言 -
甄药泰白: ')是先执行getchar(),就是从键盘读入一个字符,再将这个字符赋值给c,然后再执行while(c!='\n'),就是判断是否是回车符. scanf("%d%d%d,a,b,c")里边%d是格式控制输入,就是一大串的相同格式的东西一起输入 至于为什么不用它,就是要根据你的题目要求了 因为你是用scanf的时候输入回车符不会停止输入,比如scanf("%d%d%d,a,b,c")你先输入一串数字,回车,那只是把你刚才输入的数字赋值给a,接下去的就是赋值给b,c,d…… 另外,团IDC网上有许多产品团购,便宜有口碑

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