c语言:如何限制数字在某个范围?

Python018

c语言:如何限制数字在某个范围?,第1张

这个可以用if循环实现。比如你要输入一个数a的范围是0到100,你先从键盘输入一个数字,经if循环if(a>=0&&a<=100)判定,如果在这个范围内,进入循环内进行其他运算,不在这个范围内跳出if循环,在else语句内输出超出范围的提示

1.凡是数字皆为字符。任何数字首先是字符,然后才能是数字。所以这个问题应该是如何在字符中识别数字。直接将每个字符挨个提取出来,将他赋给一个整型,得到它的ASCII码值。然后根据ASCII码的范围来判断它到底是数字字符还是非数字字符。由下表可以得知,数字范围在48~57的都是数字字符。

2.用isdigit()函数判断字符串是否为数字。

  isdigit()函数包含在ctype.h头文件中,

  原型: int isdigit(char c)

  用法:#include <ctype.h>

  功能:判断字符c是否为数字

  说明:当c为数字0-9时,返回非零值,否则返回零。

3.下面使用isdigit()实现一个判断字符串是否为数字的代码。这个函数是判断某一个字符是否为数字,可以用一个字符数组接受输入的字符,然后循环判断每一个字符是否为数字,如果其中一个不是数字,那么返回0,否则返回非0;包含了判断小数点的个数和负数符号-。

#include<stdio.h>

#include<ctype.h>

void main()

{

    char a[10]

    int i,j,flag=0    /*flag标记小数点个数,如果超过一个,那么就不是数字*/

    printf("input a number:\n")

    scanf("%s",a)

    for(i=0a[i]!=0i++)

        {

        if(i==0&&(a[i]=='+'||a[i]=='-'))

            {

            i++

            continue

            }             /*如果第一个字符为+或-,不判断为非数字,可能是符号标志,继续向下判断*/

        if(a[i]=='.')

            {

            flag++

            if(flag>1)   /*如果小数点个数超过一个,则表示不是数字*/

                {

                break

                }

            else if(flag==1) /*如果小数点个数为1个,则可能为小数,继续判断*/

                {

                 continue

                }

            }

        j=isdigit(a[i])

        if(j==0)

            {

            break

            }

        }

    if(j!=0)

        printf("%s yes",a)

    else

        printf("%s no",a)

    getch()

}

do{

printf("请输入一个绝对值<100的整数:");

scanf("%d",&x);

}while(abs(x)>=100);

例如:

int i = 0

while ( i <10)

scanf("%d",&m);

if ( m != 0 || m!= 1) continue;

else{

array[i] = m;

i++;

扩展资料:

C的数据类型包括:整型、字符型、实型或浮点型(单精度float和双精度double)、枚举类型(enum)、数组类型、结构体类型(struct)、共用体类型(union)、指针类型和空类型(void)。

变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。

参考资料来源:百度百科-c语言