C言語で最小公倍数を求めるプログラムを作ったところ以下のようなエラーメッセージが出ました。プログラム自体はちゃんとコンパイルされ動きました。
5:17:warning:implicit declaration of function 'gcd'[-Wimplicit-function-declaration]
int n=a*b,m=gcd(a,b);
最初はプロトタイプ宣言をしていなかったので出たのかなと思いプロトタイプ宣言をしたり、最初にgcd関数(最大公約数を求める関数)を定義させたりしたのですがエラーメッセージは消えなかったです。以下にコードを載せておくので何かあればご指摘、修正依頼お願い致します。
C
1#include <stdio.h> 2#include <stdlib.h> 3 4int gcd(int a,int b); 5int lcm(int s,int t); 6 7int main(void){ 8 int n,a[10000]; 9 scanf("%d",&n); 10 for(int i=0;i<n;i++){ 11 scanf("%d",&a[i]); 12 } 13 int ans=a[0]; 14 for(int i=1;i<n;i++){ 15 ans=lcm(ans,a[i]); 16 } 17 printf("lcm=%d",ans); 18 system("pause>NUL"); 19 return 0; 20} 21 22int gcd(int a,int b){ 23 if(a<b){ 24 int tmp=a; 25 a=b; 26 b=tmp; 27 } 28 int r=a%b; 29 while(r!=0){ 30 a=b; 31 b=r; 32 r=a%b; 33 } 34 return b; 35} 36 37int lcm(int s,int t){ 38 int n=s*t,m=gcd(s,t); 39 return n/m; 40}
gcdの名前を変えてもだめですか?
回答2件
あなたの回答
tips
プレビュー