[英]C Code exits with non-zero status
我正在用 C 编写一个程序,它应该要求两个数字并找到它们的 LCM 和 GCF。 但是,在询问这两个数字后,代码只是以非零状态退出。 链接到这里的代码,任何帮助将不胜感激。
#include <stdio.h>
int main()
{
//Declare things
int i;
int num1,num2 = 0;
int foundLCM = 0;
int foundGCF = 0;
//Ask for input
printf("\nEnter a positive integer: ");
scanf("%i", &num1);
printf("\nEnter another positive integer: ");
scanf("%i", &num2);
//Set i to the bigger number
if(num1 >= num2)
{
int i = num1;
}
else
{
int i = num2;
}
//find the GCF
while(foundGCF == 0)
{
if(num1%i == 0 && num2%i == 0)
{
printf("\nGreatest Common Factor: %i\n", i);
foundGCF = 1;
}
i--;
}
//Find the LCM
while(foundLCM == 0)
{
if(i%num1 == 0 && i%num2 == 0)
{
printf("Lowest Common Multiple: %i", i);
foundLCM = 1;
}
i++;
}
//Kill
return 0;
}
您需要在第 21 和 27 行删除i
的重新声明,并简单地分别将i
的值分配给num1
和num2
。 就目前而言, i
用于递增/递减时并未初始化,这会导致程序崩溃。
此外,您需要在 GCF 循环之后和 LCM 循环之前将i
恢复到其初始值。 否则,在没有公因数的情况下,它会给出错误的值。 我建议将初始值存储在其他一些变量中。
请注意,这不是计算 GCF 和 LCM 的最佳方法。 您可以查看 Euclid 算法和实现以获取更多信息。
变量i
未初始化。
t.c: In function 'main':
t.c:21:7: warning: unused variable 'i' [-Wunused-variable]
int i = num1;
^
t.c:27:7: warning: unused variable 'i' [-Wunused-variable]
int i = num2;
^
t.c:37:7: warning: 'i' may be used uninitialized in this function [-Wmaybe-uninitialized]
printf("\nGreatest Common Factor: %i\n", i);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
你应该替换int i = num1;
由i = num1;
对于int i = num2;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.