int fun(int i)
{
if(i==1)
{
return 1;
}else{
return fun(i-1)+(2*i-1)*2;
}
}
int main(void)
{
int n,i,j,k;
scanf("%d",&n);
for(i=1;iif(fun(i)>n)
{
break;
}
}
k=i-1;
for(i=0;i<2*k-1;i++)
{
if(i<((2*k)-1)/2)
{
for(j=0;j" ");
}
for(j=2*(k-i)-1;j>0;j--)
{
printf("*");
}
}else if(i==((2*k-1)/2))
{
for(j=i;j>0;j--)
{
printf(" ");
}
printf("*");
}
}
printf("%d",n-fun(k));
return 0;
}
为什么会死机呢?
你这代码和字符串的关系是??????
当输入1时,程序会崩溃,因为k值为0,fun(0)死循环递归
输入大于1,应该没问题啊