-2
タイトルが言うように、私は分数のGCDを見つけるプログラムを作っています。プログラムにはそれを見つける機能がありますが、いくつかの問題が発生しました。構造を使って分数のGCDを見つける(シンプルなCプログラム)
私は関数は、2つの構造体変数(分母と分子を)受け入れるようにしたいと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'は構造を取っているが、あなたはそれを渡している、ということ
s1
修正を命名されていますint's ...エラーを読む! *あなたのために印刷しています。 –
もし両方が 's1'という名前であれば、第1のパラメータと第2のパラメータを区別すると思いますか? –
ありがとう、私は馬鹿のように感じる。 – tadm123