我正在编写一个程序,读取用户输入的数字,检查它是否在 0 到 100 之间,如果是,则对数字求平方根。如果数字小于 0,则会打印一条错误消息。如果数字在 100 到 200 之间,则找到该数字的自然对数,如果超过 200,则循环终止。
#include <stdio.h>
#include <math.h>
int main (void)
{
float num;
double x, y;
do {
printf("Please enter a number \n");
scanf("%f", &num);
if (num > 0 && num <= 100)
{
x = sqrt(num);
printf("The square root of the number entered is %f \n", x);
}
else if (num <= 0)
{
printf("Please enter a positive number \n");
}
else (num > 100)
{
y = log(num);
printf("The natural log of the number entered is %f \n", y);
}
} while (num <= 200);
return 0;
}
我遇到的问题是,当我构建解决方案时,我收到一条错误声明,说 a ;预计在
else (num > 100)
这是什么原因,我不希望这里需要一个?
最佳答案
else (num > 100)
应该是
else if (num > 100)
else
子句没有任何条件 - 它只是一个语法错误。
您还应该检查 scanf()
调用是否成功:
if (scanf("%f", &num) != 1) {
printf("Input error");
exit(1);
}
关于c - 尝试在 do while 循环中嵌套 if 语句时出现未知语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40576669/