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 這個語句前,這樣...