次のプログラムは出力を生成していません。for ループに入り、( 経由でscanf
) 1 つの値を取りますが、その後、コード ブロックは実行を停止します。Ideone (オンライン コンパイラおよびデバッグ ツール) によると、SIGXCPU シグナルが生成されます。
#include <stdio.h>
#include <stdlib.h>
long fact(int);
int z(int);
int main()
{
int i, n;
scanf("%d",&n);
int a[10];long b[10];
int c[10];
for(i=0;i<n;i++)
{
scanf("%d", &a[i]);
b[i]=fact(a[i]);
c[i]=z(b[i]);
}
printf("\n");
for(i=0; i<n; i++)
{
printf("%d", c[i]);
}
return 0;
}
long fact(int m)
{
if (m==1) return 1;
else return (m*fact(m-1));
}
int z (int s)
{
int c=0, temp;
temp=s%10;
if(temp!=0) return c;
else
{
c++; z(temp);
}
}
SIGXCPU シグナルは何を意味しますか?