这就是我们的proffesor发布的“编写一个程序,在C中计算两个数字的最小公共倍数”的解决方案。
#include <stdio.h>
#include <conio.h>
int main() {
int n1, n2, mcm;
printf("Enter two positive integers: ");
scanf("%d %d", &n1, &n2);
mcm = (n1 > n2) ? n1 : n2;
while (1) {
if (mcm % n1 == 0 && mcm % n2 == 0) {
printf("The Minimum Common Multiple of %d and %d is %d.", n1, n2, mcm);
break;
}
++mcm;
}
return 0;
}
这是在programiz上可以找到的相同代码,但不包括conio.h库。使用mcm获取值的整行的目的是什么?它和conio.h图书馆有关吗?当我自己编写代码时,我只是声明了mcm=1;它运行得很好。
发布于 2022-01-03 15:45:44
这是三元算子。引用如下:
?:; 三元操作符允许您根据条件的值执行不同的代码,表达式的结果是执行代码的结果。
使用
mcm
获取值的整行的目的是什么?
所以你的代码行:
mcm = (n1 > n2) ? n1 : n2;
它的意思是:
if (n1 > n2)
mcm = n1;
else
mcm = n2;
发布于 2022-01-03 15:30:35
它节省了一些cpu周期,因为您知道小于两个输入中较大的值不能是两个值的公共倍数,因此不需要测试这些值。
https://stackoverflow.com/questions/70567931
复制相似问题