為什么程序運行后得到數字不對
#include<stdio.h> int?main() { ??int?amount; ??int?n?=?1; ??scanf("%d",&amount); ??while(?n?<=?amount){ ????amount?*=?n; ????n?++; ????} ??printf("階乘為%d",amount); ??return?0; ??//在D++上運行成功,但是除輸入零外的任何數字都無法算出正確的階乘,一直都是負號開頭的數字
?
#include<stdio.h> int?main() { ??int?amount; ??int?n?=?1; ??scanf("%d",&amount); ??while(?n?<=?amount){ ????amount?*=?n; ????n?++; ????} ??printf("階乘為%d",amount); ??return?0; ??//在D++上運行成功,但是除輸入零外的任何數字都無法算出正確的階乘,一直都是負號開頭的數字
?
2020-03-06
舉報
2020-03-06
先給amount賦初值
2020-03-06
/*理解了,amount是計算所比較的數,并不能直接加入while中,否則會使()內的比較隨之變動,因此需要一個數字儲存過程中所取得的數*/
#include<stdio.h>
int main()
{
?? ?int n = 1;int sum =1;
?? ?int amount ;
?? ?printf("請輸入你想要階乘的數字\n");
?? ?scanf("%d",&amount);
?? ?while(n <= amount){
?? ??? ?sum *= n;
?? ??? ?n ++;
?? ?}
?? ?printf("n! = %d",sum);
?? ?return 0;
}
2020-03-06