已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
昨天关门了。
Improve this question
我是编程新手,目前正在学习C语言,所以我对这个概念了解不多,但我正在学习条件指令,当时我的导师[我从YouTube在线学习]向我解释了逻辑运算符。
他解释说,逻辑运算符与if...else一起使用可以减少缩进并增加可读性。
过了一段时间,我正在解决一个问题,找出四个数字中最大的一个,在这里,他与理论相矛盾,他描述了嵌套的if来解决这个问题,而不是使用逻辑运算符。
现在,我感到困惑,我应该采取什么样的做法,为什么?
还有,什么时候应该使用算术指令,什么时候应该使用嵌套的if...else?
我编写的代码:
#include <stdio.h>
int main()
{
int number1, number2, number3, number4;
printf("\nEnter the vlaue of number1: ");
scanf("%d", &number1);
printf("\nEnter the value of number2: ");
scanf("%d", &number2);
printf("\nEnter the value of number3: ");
scanf("%d", &number3);
printf("\nEnter the value of number4: ");
scanf("%d", &number4);
if(number1 > number2 && number1 > number3 && number1 > number4)
{
printf("\n%d is the greatest of four numbers.\n", number1);
}
else if(number2 > number3 && number2 > number4)
{
printf("\n%d is the greatest of four numbers.\n", number2);
}
else if(number3 > number4)
{
printf("\n%d is the greatest of four numbers.\n", number3);
}
else
{
printf("\n%d is the greatest of four numbers.\n", number4);
}
return 0;
}
我的讲师编写的代码:
#include <stdio.h>
int main()
{
int number1, number2, number3, number4;
printf("\nEnter the vlaue of number1: ");
scanf("%d", &number1);
printf("\nEnter the value of number2: ");
scanf("%d", &number2);
printf("\nEnter the value of number3: ");
scanf("%d", &number3);
printf("\nEnter the value of number4: ");
scanf("%d", &number4);
if(number1 > number2)
{
if(number1 >number3)
{
if(number1 > number4)
{
printf("\n%d is the greatest of four numbers.\n", number1);
}
}
}
else if(number2 > number3)
{
if(number2 > number4)
{
printf("\n%d is the greatest of four numbers.\n", number2);
}
}
else if(number3 > number4)
{
printf("\n%d is the greatest of four numbers.\n", number3);
}
else
{
printf("\n%d is the greatest of four numbers.\n", number4);
}
return 0;
}
3条答案
按热度按时间qgelzfjb1#
1.教师的代码是错误的。如果您输入
2
、1
、3
和4
作为这四个数字,它将打印不出任何内容,而它应该打印4是最大的。1.逻辑运算符
&&
和||
通常用于合并其他条件。减少缩进和增加可读性是一个单独的目标。不要专注于其中任何一个;只需学习使用运算符来执行所需的计算,并练习使程序可读即可。sqxo8psd2#
增加缩进并不意味着降低可读性。如果你有一个很长的if条件,它会减少缩进,但也会降低可读性。你应该使用唯一的方法,让你的代码保持干净和尽可能简单。代码的效率也是必要的,因为你谈论的是C语言。逻辑运算符有助于将两个或更多的if条件合并成一个,有时它确实提高了可读性。有时候,嵌套的如果是更好的选择,你应该考虑你的情况,选择最好的方式。
正如其他评论者所说,您的讲师是错误的,代码有逻辑错误。
bqjvbblv3#
如果数字1 = 5,数字2 = 3,数字3 = 6,数字4 = 2
它会打印5是四个数字中最大的,而6是。所以这是不正确的编码。
如果条件语句是主题,你的老师有更正确的答案,无论这看起来多么复杂。
因为实际上,您可以编写: