每次用户都输入两个值。结果应始终为结果=(大号/小号)。 如果用户给出一个负值和一个正值作为输入,那么它将产生一个错误。
#include<stdio.h>
int main()
{
int times=0;
float a,b,result;
while(times<5)
{
printf("\nEnter two numbers : \n");
scanf("%d %d",&a,&b);
if(a =< 0 || b =< 0)
{
printf("INPUT ERROR\n");
}
else
{
if(a>=b)
{
result =a/b;
printf("The result is = %.2f\n",result);
}
else
{
result =b/a;
printf("The result is = %.2f\n",result);
}
}
times++;
}
return 0;
}
我该如何解决此问题。谢谢!!!!
答案 0 :(得分:0)
您的代码中有两个问题:运算符和处理输入。
如果要检查某项是否小于/等于某项,则应在使用<=
运算符时使用>=
或=<
,该运算符至少(包括) C / C ++不存在。
在获取输入和float
变量的用法时,应使用与printf
中相同的占位符,对于float
变量,该占位符为%f
。如果您决定将其更改为int
,则可以使用%d
,但是结果也将是int
。
固定代码:
#include<stdio.h>
int main()
{
int times = 0;
float a, b, result;
while (times < 5)
{
printf("\nEnter two numbers : \n");
scanf("%f %f", &a, &b);
if(a <= 0 || b <= 0)
{
printf("INPUT ERROR\n");
}
else
{
if(a >= b)
{
result = a / b;
printf("The result is = %.2f\n", result);
}
else
{
result = b / a;
printf("The result is = %.2f\n", result);
}
}
times++;
}
return 0;
}
还有一个编译代码的技巧-使用额外的标志,它总是会向您显示错误,我真的很喜欢使用-Wall -Wextra -Werror -pedantic
。它们提供有关“可疑”构造(-Wall
)的信息,启用-Wall
(-Wextra
)尚未启用的更多标志,将所有警告更改为错误(-Werror
)并发出ISO C(-pedantic
)要求的所有警告。