我的代码要求输入两次。我知道这是因为两个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);
答案 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)。