-2
正如標題所說,我正在制定一個程序來查找分數的GCD。該程序有一個功能,可以找到它,但我遇到了一些問題。使用結構來查找分數的GCD(簡單C程序)
我希望函數接受兩個結構變量(分母和分子),並返回GCD(整數)
這裏是我的代碼:
#include <stdio.h>
struct fraction{
int numerator,denominator;
};
int find_gcd(struct fraction s1, struct fraction s1);
int main(void)
{
struct fraction d1;
int gcd;
d1.numerator= 20;
d1.denominator= 100;
printf("Fraction: %d/%d\n",d1.numerator,d1.denominator);
gcd= find_gcd(d1.numerator, d1.denominator);
printf("In lowest terms: %d/%d",d1.numerator/gcd,d1.denominator/gcd);
}
int find_gcd(struct fraction s1, struct fraction s1)
{
int remainder=0;
while (s1.denominator !=0)
{
remainder = s1.numerator/s1.denominator;
s1.numerator= s1.denominator;
s1.denominator= remainder;
}
return s1.numerator; //this is the gcd
}
我收到以下錯誤:
GCD_structures.c:8:50: error: redefinition of parameter 's1'
int find_gcd(struct fraction s1, struct fraction s1);
^
GCD_structures.c:8:30: note: previous definition of 's1' was here
int find_gcd(struct fraction s1, struct fraction s1);
^
GCD_structures.c: In function 'main':
GCD_structures.c:20:10: error: incompatible type for argument 1 of 'find_gcd'
gcd= find_gcd(d1.numerator, d1.denominator);
任何幫助,將不勝感激。
在函數的簽名
'find_gcd'正在採取的結構,但你傳遞' int's ...閱讀錯誤!它正在打印* *你*。 –
你認爲如果第一個參數和第二個參數都被命名爲's1',你認爲如何區分? –
謝謝,我覺得自己像個白癡。 – tadm123