递归
为啥我输入到6输入的时候,后面会多一个奇怪的数???#include<stdio.h>
#include<stdlib.h>
int num(int x);
int main()
{
int n,a,m,i;
for(i=0;;i++)
{
scanf("%d",&n);
if(n==0)
break;
}
for(i=0;n!=0;i++)
{
a=num(n);
}
i=0;
while(a)
{
printf("%d\n",a);
i++;
}
system("pause");
return 0;
}
int num(int x)
{
if(x<5)
return x;
else
return (x-3+num(x-1));
} 18行while(a)这个条件是错的,数组初始化的时候每个变量的数据是不确定的,取决于内存中这个位置之前的数据。你这里恰好a初值为11796480而第二次运行时a初值为0。建议在前面输入时加一个计数器变量count,后面条件改成while(i < count)
页:
[1]