私はcプログラミングに不慣れです。階乗のプログラムを作成しましたが、正しく機能しません。以下のコードを追加しています。
#include <stdio.h>
#include <conio.h>
void main()
{
int x=1;
int z,n;
scanf("%d",&n);
for(z=1;z<=n;z++)
{
x=x*z;
}
printf("%d",&x);
getch();
}
私はcプログラミングに不慣れです。階乗のプログラムを作成しましたが、正しく機能しません。以下のコードを追加しています。
#include <stdio.h>
#include <conio.h>
void main()
{
int x=1;
int z,n;
scanf("%d",&n);
for(z=1;z<=n;z++)
{
x=x*z;
}
printf("%d",&x);
getch();
}
printf("%d", x)
の代わりに使用してくださいprintf("%d", &x)
。
これらはあなたがあなたのプログラムでしなければならない修正です
- そうで
printf("%d", x)
はありませんprintf("%d", &x)
- 使用を避けてください
#include<conio.h>
、それは減価償却されます。- すべてがうまくいけば、
int main()
の代わりにを使用しvoid main()
、正の整数を返すことをお勧めします。0
単項演算子として、タイプが。&x
のアドレスを返します。これは次のように解釈できますが、通常、間違ったフォーマットフラグで何かを印刷しようとすると、コンパイラは警告を出します(GCCをコンパイラオプションとして使用する場合)。x
int*
int
-Wall
アドレスを出力したくないので、の値はx
不要なオペランドを削除するだけです。
printf("%d", x);
まず、intの使用可能なスペースが小さい場合、最大値はn=15になります。
第二に、ライブラリを使用する必要はありませんconio.h
第三に、使用しているために機能しない&x
、消去して機能する
第4に、 forステートメントを1行で実行できます
第五に、に変更void main()
し、最後int main()
に追加しますreturn 0;
第六に、このコードはあなたのために働きます
#include <stdio.h>
int main()
{
int x=1;
int z,n;
scanf("%i",&n);
for(z=1;z<=n;x*=z++,printf("value of z is =%i , value of factorial is =%i\n",z,x));
printf("%i",x);
return 0;
}