#define TRUE 1
#define FALSE 2
struct rational{
int numerator;
int denominator;
}
void reduce(struct rational *inrat,struct rational *outrat)
{
int a,b,rem;
if(inrat->numerator>inrat->denominator)
{
a=intrat->numerator;
b=inrat_>denominator;
}
else
{
b=intrat->numerator;
a=intrat->denominator;
}
while(b!=0)
{
rem=a%b;
a=b;
b=rem;
}
outrat->numerator/=a;
outrat->denominator/=a;
}
好吧,這是一個減少有理數的代碼。它基於歐幾里德算法。
我的問題是,如果所有的數據都通過intrat
(當然在主函數中)存儲在變量中,那麼使用指向結構outrat
的指針是什麼。 爲什麼使用語句outrat->numerator/=a; outrat->denominator/=a;
如果通過intrat
指針操縱實際值,爲什麼使用outrat
?在C中使用結構減少理性數的函數
哇。這是非常難以閱讀。您可以花幾分鐘時間查看格式準則並解決此問題,以便我們可以閱讀它? – 2011-12-22 21:20:21
'#define TRUE 1 #define FALSE 2' * ::打擊渴望自己的眼睛出去:: *你爲什麼要那樣做? C提供了一個內置的解釋0 - > false,所有其他值 - > true。打破這隻會混淆追隨你的程序員。包括你未來的自我。 – dmckee 2011-12-22 21:22:16
@dmckee基於這個問題我猜這不是用戶的代碼,這更加可怕。我冒昧地將它格式化一下,因爲用戶在這裏是新的。第一個人的免費:) – JoeFish 2011-12-22 21:24:18