慕斯卡9202087
2016-08-17 22:58:56
#include <stdio.h>int factorial(int n){?? ?int result;?? ?if (n < 0)?? ?{?? ??? ?printf("%s\n", "輸入錯誤");?? ??? ?return 0;?? ?}?? ?else if (n == 0 || n == 1);?? ?{?? ??? ?result = 1;?? ?}?? ?else (n > 1)?? ?{?? ??? ?result = factorial(n - 1)*n;?? ?}?? ?return result;}int main(){?? ?int n = 5;?? ?printf("%s\n", "%d的階乘=%d", n, factorial(n));?? ?return 0;}
7 回答

噼喱啪啦
TA貢獻392條經驗 獲得超170個贊
首先第七行,%s是輸出字符,也就是要有變量跟%d那樣的用法,是輸出控制,你可以直接這樣輸出
printf( "輸入錯誤");輸出提示信息就可以.
還有第十四行,這個else其實后面不用加(n>1)了,else就行,所有的if跟else都不能加分號
最后主函數的那句輸出,你也是濫用了%s,你繼續學習下一節應該就懂了.

霏梧
TA貢獻65條經驗 獲得超23個贊
#include <stdio.h>
int factorial(int n)
{
?? ?int result;
?? ?if (n < 0)
?? ?{
?? ??? ?printf("%s\n", "輸入錯誤");
?? ??? ?return 0;
?? ?}
?? ?else if (n == 0 || n == 1)
?? ?{
?? ??? ?result = 1;
?? ?}
?? ?else if (n > 1)
?? ?{
?? ??? ?result = factorial(n - 1)*n;
?? ?}
?? ?return result;
}
int main()
{
?? ?int n = 5;
?? ?printf("%d,n階乘=%d\n", n, factorial(n));
?? ?return 0;
}
- 7 回答
- 0 關注
- 1915 瀏覽
添加回答
舉報
0/150
提交
取消