使用C语句中的if语句请求输入两次

时间:2015-10-01 18:35:47

标签: c if-statement scanf

我的代码要求输入两次。我知道这是因为两个scanf()电话,但我不知道如何摆脱其中一个电话,以使其只询问输入一次。我需要检查以确保输入是一个数字,如果它是一个数字,那么请确保它在0到90之间。

printf("Hello! Let's compute the escape velocity of a baseball!\n");
printf("Please supply the angle of travel, in degrees: ");
scanf(" %lf", &angleTravel);
    if (scanf(" %lf", &angleTravel) != 1){
        printf("Please enter a number.");
        return(0);}
    if ((angleTravel > 90) || (angleTravel < 0)){ 
        printf("Please try again with an angle between 0 and 90.\n");
        return(0);}
radianTravel = angleTravel * (M_PI / 180.0); 
printf("The angle you supplied is %lf degrees, or %lf radians\n",       angleTravel, radianTravel);

2 个答案:

答案 0 :(得分:2)

您可以引入变量matches来存储scanf的结果:

int matches = scanf(" %lf", &angleTravel);

然后在if子句的条件中检查matches

if (matches != 1){

答案 1 :(得分:0)

您可以删除第一个scanf语句。您不需要第一个scanf语句。

运行

之类的代码时
if(f(x)==1)
{
    /*stuff*/
}

在进行比较之前,代码将执行函数f(或者在大多数情况下为scanf)。