配列 c に格納されたすべての公約数を表示するプログラム
Posted: 2010年12月09日(木) 17:23
最大公約数を計算する関数 int gcd( int a, int b) を利用して,2つの自然数 a, b に対し,その公約数をすべて求め,int型配列 c に格納する関数 void cd(int a, int b, int c[]) を作成し、main関数で 2つの自然数 a,b を入力させ,関数 cd を呼び出し,配列 c に格納されたすべての公約数を表示するプログラムを作成したいです。たとえば、a = 2400, b = 2040 のとき,公約数は 1 2 3 4 5 6 8 10 12 15 20 24 30 40 60 120 となるようにしたいです。
作ってみたのですが、うまく動きません。
どこがちがうのでしょうか?
教えてください。
お願いします。
#include<stdio.h>
void cd(int a, int b, int c[]);
int main(void)
{
int a,b,y;
printf("a");
scanf("%d",&a);
printf("b");
scanf("%d",&b);
y=cd(int a,int b,int c[]);
printf("%d",y);
return 0;
}
void cd(int a, int b, int c[])
{
int x,y;
y=1;
for(x=2;x<=a;x++)
{
if(a%x==0&&b%x==0)
{
y=x;
}
}
}
作ってみたのですが、うまく動きません。
どこがちがうのでしょうか?
教えてください。
お願いします。
#include<stdio.h>
void cd(int a, int b, int c[]);
int main(void)
{
int a,b,y;
printf("a");
scanf("%d",&a);
printf("b");
scanf("%d",&b);
y=cd(int a,int b,int c[]);
printf("%d",y);
return 0;
}
void cd(int a, int b, int c[])
{
int x,y;
y=1;
for(x=2;x<=a;x++)
{
if(a%x==0&&b%x==0)
{
y=x;
}
}
}