验证来自c中函数的输入

时间:2017-04-17 04:44:47

标签: function validation loops double

1 个答案:

答案 0 :(得分:0)

首先,页面顶部的函数定义有一个参数:

double get_positive_value(float num);

哪个与您实际拥有代码的地址的参数列表不匹配:

double get_positive_value()    // this is missing "float num" argument
{
    //code
}

其次,一旦你最初在“main”函数中扫描输入,你就会调用函数“get_positive_value()”:

scanf("%f",&top_speed);
top_speed = get_positive_value(top_speed);

该函数将始终显示“错误”消息,然后在do-while循环中执行另一个“scanf”。

double get_positive_value()
{
    do{
        printf("error\n");
        scanf("%f", &num);
        ...
      }
    while(num<=0);

    return num;
}

每个变量“top_speed / year / horsepower”至少需要2个输入。

我不确定你没有得到“解决”但是如果我的答案似乎遵循了什么错误只是将你的功能改为

double get_positive_value(double value)
{
    while(value <= 0){
        printf("error\n");
        scanf("%f", &value);
        ...
      }

    return value;
}

这与原始函数声明(包括参数)匹配,如果原始输入大于0,它只会在函数中循环一次。

我希望有帮助