###前提・実現したいこと
C言語で、配列a[][]と自然数Nを与えて、Nまでの2つの自然数の最大公約数を判別してmainに返すプログラム。
最大公約数が1の時は1を、最大公約数が1以外の時は0を返したいです。
例えば、[3][6]であれば0, [3][5]であれば1です。
###発生している問題・エラーメッセージ
mainに返さず出力すると問題ありませんが、mainに返して出力すると、0、1以外の意味不明な数字が出力されてしまいます。
###ソースコード
C
1#include <stdio.h> 2 3int GCD(int N,int a[][N]){ 4 int j; 5 int i; 6 int counter; 7 8 for (i=1; i<=N; i++){ 9 for(j=1; j<=N; j++){ 10 a[i][j] = 1; 11 } 12 } 13 14 printf("\n"); 15 16 for (i=1; i<=N; i++){ 17 for(j=1; j<=N; j++){ 18 for( counter = 2; (i*counter) <= N && (j*counter) <= N; counter++){ 19 a[i*counter][j*counter] = 0 ; 20 } 21 } 22 } 23 24 25 26} 27 28 29int main() { 30 int i,j; 31 int N; 32 33 scanf("%d", &N); 34 int a[N][N]; 35 36 GCD(N,a); 37 38 printf("results\n"); 39 for (i=1; i<=N; i++){ 40 for(j=1; j<=N; j++){ 41 printf("[%d][%d]=%d,",i,j,a[i][j]); 42 } 43 printf("\n"); 44 } 45 46} 47
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/03 03:09