将下面两行替换b=a-1;while(a==1){b=b*a,a=a-1;};替换为b=1;while(a>1){b=b*a,a=a-1;}就对了。循环条件怎么能是a==1呢,那当然不循环了。另外b初始为a-1的话就多乘了一遍。粗心了亲~~~求采纳