比较3个数字时的错误(其中1个为负数)(C eror in comparing 3 numbers (1 of them is negative))
如果有人能帮我处理我的代码,那就太好了。 根据任务我有几个数字(至少1个负数)如果我得到3个数字> 0或= 0然后答案是0 .Cod应该找到最接近0的数字。 这是我的鳕鱼,但它不起作用。
#include <stdio.h> #include <conio.h> int main() { int uno, dos, tres; //numbers printf("enter your numbers"); scanf_s("%d %d %d", &uno, &dos, &tres); if (uno > 0 || uno == 0 && dos > 0 || dos == 0 && tres > 0 || tres == 0) printf("There is no negative numbers ..."); else if (uno == 0 || uno > 0 && dos > 0 || dos == 0 && tres < 0) printf("Your number is %d", &tres); else if (uno > 0 || uno == 0 && dos < 0 && tres < 0) if (dos < tres || tres == dos) printf("Your number is %d", &tres); else printf("Your number is %d", &dos); else if (uno < 0 && dos < 0 && tres < 0) if (uno < dos && uno < tres) if (dos < tres || tres == dos) printf("Your number is %d", &tres); else printf("Your number is %d", dos); else if (dos < uno && dos < tres) if (uno < tres|| uno==tres) printf("Your number is %d",& tres); else printf("Your number is %d", &uno); else if (tres < uno && tres < dos) if (uno < dos || uno==dos) printf("Your number is %d",&dos); else printf("Your number id %d",&uno); _getch(); return 0; }感谢任何帮助。
it would be nice if someone would help me with my code . According to task i have a few numbers (at least 1 negative) in case i`m getting 3 numbers > 0 or = 0 then answer is 0 .Cod should find the closest to 0 number. Here is my cod but it is not working .
#include <stdio.h> #include <conio.h> int main() { int uno, dos, tres; //numbers printf("enter your numbers"); scanf_s("%d %d %d", &uno, &dos, &tres); if (uno > 0 || uno == 0 && dos > 0 || dos == 0 && tres > 0 || tres == 0) printf("There is no negative numbers ..."); else if (uno == 0 || uno > 0 && dos > 0 || dos == 0 && tres < 0) printf("Your number is %d", &tres); else if (uno > 0 || uno == 0 && dos < 0 && tres < 0) if (dos < tres || tres == dos) printf("Your number is %d", &tres); else printf("Your number is %d", &dos); else if (uno < 0 && dos < 0 && tres < 0) if (uno < dos && uno < tres) if (dos < tres || tres == dos) printf("Your number is %d", &tres); else printf("Your number is %d", dos); else if (dos < uno && dos < tres) if (uno < tres|| uno==tres) printf("Your number is %d",& tres); else printf("Your number is %d", &uno); else if (tres < uno && tres < dos) if (uno < dos || uno==dos) printf("Your number is %d",&dos); else printf("Your number id %d",&uno); _getch(); return 0; }Appreciate any help.
最满意答案
逻辑OR(||)具有比逻辑AND(&&)更高的优先级,因此您应该添加一些括号。 例如。
if (uno > 0 || uno == 0 && dos > 0 || dos == 0 && tres > 0 || tres == 0)应该成为
if ((uno > 0 || uno == 0) && (dos > 0 || dos == 0) && (tres > 0 || tres == 0))Logical OR (||) has greater precedence than logical AND (&&) so you should add some parenthesis. eg.
if (uno > 0 || uno == 0 && dos > 0 || dos == 0 && tres > 0 || tres == 0)should become
if ((uno > 0 || uno == 0) && (dos > 0 || dos == 0) && (tres > 0 || tres == 0))更多推荐
发布评论