這是我寫的代碼。請告訴我我可能存在的錯誤和知識差距
#include <stdio.h>
int main()
{
int i,n,c=1;
printf("enter the number 1:");
scanf("%d",&i);
printf("enter the second number:");
scanf("%d",&n);
while (i!=n)
{
c ;
i=i*c;
n=n*c;
}
printf("the lcm is %d",i);
return 0;
}
我輸入的輸入:2 & 3
我得到的輸出: lcm 是 0
預期輸出:lcm 為 6
uj5u.com熱心網友回復:
你的演算法是完全錯誤的。
舉一個基本的例子i=3和n=4.
LCM 是 12,要得到 12,您將兩個數字乘以不同的數字。而您假設您需要將兩個數字乘以相同的 factor c。
通過逐步進行非常簡單的除錯,您可能已經自己找到了解決方案。您甚至可以在線為您的基本代碼執行此操作。
您的代碼中還有其他問題,例如您使用有符號整數(您可能需要無符號整數)以及您不關心整數溢位的事實。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/417880.html
標籤:
上一篇:準備類考試(C)->具有自寫函式的n次根(沒有math.h或其他東西)
下一篇:在C中轉換12位有符號數
