0
私はプログラミング全体の初心者です。私は本からプログラミング演習を行っています。私は再帰関数を書くはずの本の一部に達しました。いくつかのプログラムがクラッシュし、何が間違っているのか分かりません。これら2つを比較してください:C再帰的なプログラムのクラッシュ
これは、キーボードと番号から数値を読み取る必要があります。 (数の階乗)。私は、これは、キーボードからのnを読み込み、文字列内のn番目の要素の値を返す必要があり
#include <stdio.h> int number, x; int factorial (int a); int main() { printf("Input a nonnegative whole number: \n"); scanf("%d", &number); int x = factorial(number); printf("Factorial of %d equals %d", number, x); return 0; } int factorial (int a){ if(a=0) { return 1; } else { return a*factorial(a-1); } }
数を入力しようとした後にそれがクラッシュします。これはクラッシュしません。
#include <stdio.h> int n; int string (int a); int main() { printf("Input a nonnegative whole number: \n"); scanf("%d", &n); int x = string(n); printf("%d element of the string equals %d", n, x); return 0; } int string (int a) { int value; if (a<=1) { value = 1; } else { value = string(a-1) + 2*string(a-2) + 3; } return value; }
これら2つのプログラムが私にはほとんど同じように見えます。なぜ最初のものがクラッシュし、2番目のものがクラッシュするのか分かりません。助けてください、事前にありがとうございます。
'if(a = 0)' - それを非常によく見て、欠けている文字があります。 – Mat
デバッガを使用する方法を学び、そのような簡単な問題を見つけるのに役立ちます。 –
いくつかのコンパイラがこのことについて警告しています... –