c语言中输入验证程序

1、

#include <stdio.h>
#include <stdbool.h>


long get_long(void);

long square_sum(long num1, long num2);

bool get_range(long start, long end, long lower_bound, long upper_bound);

int main(void)
{
    long result;
    const long MIN = -10000L;
    const long MAX = +10000L;
    long begin, terminus;
    
    
    printf("the range is -10000 -- +10000.
");
    printf("please input the lower_bound(0 to quit): ");
    begin = get_long();
    printf("please input the upper_bound(0 to quit): ");
    terminus = get_long();
    
    while(begin != 0 || terminus != 0)
    {
        if(get_range(begin, terminus, MIN, MAX))
        {
            printf("please try again.
");
        }
        else
        {
            result = square_sum(begin, terminus);
            printf("squre sum betweent %ld and %ld is %ld.
",begin, terminus, result);
        }
        printf("please input the lower_bound: ");
        begin = get_long();
        printf("please input the upper_bound: ");
        terminus = get_long();
    }
    return 0;
}

long get_long(void)
{
    long num;
    char ch;
    
    while((scanf("%ld", &num)) != 1)
    {
        while((ch = getchar()) != '
')
            putchar(ch);
        printf(" is not num.
");
        printf("please input num: ");
    }
    
    return num;
}

long square_sum(long num1, long num2)
{
    long square_sum;
    int i;
    
    for(i = num1; i <= num2; i++)
    {
        square_sum += i * i;
    }
    
    return square_sum;
}

bool get_range(long start, long end, long lower_bound, long upper_bound)
{
    bool tab = false;
    
    if(start > end)
    {
        printf("start > end!!!!
");
        tab = true;
    }
    
    if(start < lower_bound || end < lower_bound)
    {
        printf("start or end < lower_boudn.!!!!!!
");
        tab = true;
    }
    
    if(start > upper_bound || end > upper_bound)
    {
        printf("start or upper > upper_bound.!!!!!
");
        tab = true;
    }
    
    return tab;
}

原文地址:https://www.cnblogs.com/liujiaxin2018/p/15192223.html