递归算法输出N个数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:10:28
想输出大于0小于N的所有数,正着排列,使用递归,编了个程序,为什么输出的都是1呢?请高手赐教
#include <stdio.h>
int printfNumber(int n);
int main()
{
int n,i;
printf("please insert a number");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("%d ",printfNumber(i));
}/* end for */

return 0;

}/*end main */

int printfNumber(int n){
/*base case */
if(n=1){
return 1;
} /*end if */
else
{
return (1+printfNumber(n-1));
}/* end else */

}/* end function printNumber */

int printfNumber(int n){
/*base case */
if(n=1){
return 1;
} /*end if */
else
{
return (1+printfNumber(n-1));
}/* end else */

这段代码中的if判断条件应为 if(n==1),你写的是n=1,n=1这是一个赋值语句,永真,所以走return 1这步。