我是C語言初學者請問我下面的程式哪出問題咯!求M和N的最大公約數

時間 2021-09-07 04:06:49

1樓:

if(m%n=0) 改為if(m%n==0)if(m%(n%m)=0)改為if(m%(n%m)==0)if(n%m=0) 改為 if(n%m==0)演算法錯誤;

#include

int fun(int m,int n)

//把大數放前面

if(n==0) return m;

else return fun(n,m%n);

}void main()

遞迴演算法

2樓:永遠的散漫

if裡邊的判斷表示式要用==而不是=

=是來用來賦值的

==是來比較的

這個選擇結構你也沒弄懂

一個if只能和一個else配對

你要想if後面和多個else配對 就必須寫成這種樣式的if(條件1)滿足條件1

else if(條件2)不滿足條件1 滿足條件2else if(條件3)不滿足條件1 2 滿足條件3else if(條件4)不滿足條件1 2 3 滿足條件4else 條件1 2 3 4都不滿足

你這個公約數的演算法我就沒看了 不過我覺得演算法好像也設計的有問題

3樓:匿名使用者

一個語法錯誤if(m%n=0) ,=是賦值符號,==才是等號。

還有邏輯錯誤,自己在仔細琢磨,印象才會深刻,輾轉相除法最好採用中間變數和迴圈。

4樓:棟學名

if條件裡面的 應該是==的

=是代表賦值 左邊應該是左值

各位大俠我是c語言初學者想請教下c裡面的資料

楓林菜菜 就像路上的車一樣的,人走人行道,各種車走自己專屬的車道,否則會導致交通混亂 另外,開始學習計算機程式語言切記一個字一個字的研究,那沒什麼意義的,應該先 死記硬背,等你會用了,再仔細考慮它在計算機中是如何實現的,否則是學不好計算 機程式語言的。希望對你有幫助! 資料型別 就像是說 你是男人或...

C語言幫忙改個錯,我初學者

可以的。include void max int q,int d void main p a 0 for i 1 i q d q a 0 p?a 1 a 0 確保q指向的不是最大元素 for i 0 i printf 最大數為 d n p printf 次最大數為 d n q void max in...

我是C語言初學者,有問題請教高手

這很正常了,因為這些程式是在dos視窗中執行的,執行完之後就會退出dos視窗,如果你先開啟一個dos視窗,然後再輸入那個檔名執行的話,就不會這樣了,如果你覺得這樣做太麻煩,那你就在程式的後面加個暫停語句getch 或者system pause 就可以了。一定要加在 return 0 這個語句前,這樣...