c语言77重要
下列给定程序中,函数fun的功能是∶根据形参n计算并返回阶乘!。为避免每次阶乘都要从1开始乘起,程序中使用了静态结构体变
量old保存上次计算的阶乘。每次计算时,要比较新的参数n与上次计算的阶数n,以便决定计算方法。
#include <stdio.h>
#include <stdlib.h>#include <ctype.h>#pragma warning (disable:4996)
struct Ord{ int n; long ordor;};
long fun(int n){ static struct Ord old={0,1}; int i;
if(n==old.n)
/**********************found***********************/ return (old.ordor);
if(n>old.n)
for(i=old.n+1;i<=n;i++)
old.ordor*=i;
else for(i=old.n;i>n;i--)
old.ordor/=i;
/**********************found***********************/ old.n=n;
/**********************found***********************/ return (old.ordor);
}
main( )
{ int i,n;
for(i=0;i<5;i++)
{ n=rand()%10; printf("%d %ld\n",n,fun(n)); }}