目錄
- 整型
- 浮點型
一、整型
求1!+2!+3!+…+n!
求1!+2!+3!+…+20!
程序…………雙長整型…………
#include<stdio.h> //當sum爲short時, N最大可取8 -2^15 ~ (2^15-1) -32768~32767
#define N 20 //當sum爲int整型時,N最大可取12 -2^31 ~ (2^31-1)
int main() //當sum爲雙長型時, N最大可取20 -2^63 ~ (2^63-1)
{
long long int i,sum,term;
sum=0,term=1;
for(i=1;i<=N;i++)
{
term=term*i;
sum=sum+term;
printf("%4d!= %lld\n",i,term); //此行可不要
}
printf("\n 1!+2!+…+%d! = %lld\n",N,sum); // %lld
return 0;
}
去掉for循環中
printf("%4d!= %lld\n",i,term); //此行可不要
運行結果1…………………………
#define N 20 //多用符號常量(尤其是複雜程序中)
運行結果2…………………………
二、浮點型
求1!+2!+3!+…+n!
求1!+2!+3!+…+20!
程序……………double……………
#include<stdio.h>
#define N 20 //當s,t爲 float,N最大可取40 -1.2*10^-38 ~ 3.4*10^38 和0 (4字節)
int main() //當s,t爲 double,N最大可取160 -2.3*10^-308 ~ 1.7*10^308 和0 (8字節)
{ //當s,t爲 long double -3.4*10^-4932 ~ 1.7*10^4932 和0 (16字節)
double s=0,t=1;
int n; //N=20時 long long型,float和double 結果都不一樣
for(n=1;n<=N;n++) //long long 結果最準確
{
t=t*n;
s=s+t;
printf("%4d!= %0.lf\n",n,t); //此行可去掉
}
printf("\n1!+2!+3!+...+%d! = %0.lf\n",N,s);
return 0;
}
去掉
printf("%4d!= %0.lf\n",n,t); //此行可去掉
運行結果1…………………………
運行結果2…………………………
輸出不同形式數據:
#include<stdio.h>
#define N 20
int main()
{
double s=0,t=1;
int n;
for(n=1;n<=N;n++)
{
t=t*n; //累乘
s=s+t; //累加
}
printf("\n1!+2!+3!+...+%d! = %0.lf\n",N,s);
printf("\n1!+2!+3!+...+%d! = %22.15e\n",N,s);
printf("\n1!+2!+3!+...+%d! = %e\n",N,s);
return 0;
}
運行結果……………………