WHY不同的循环语句,结果不过?
今天我在学C语言的时候发现不同的循环语句,得出的结果缺是不同,高手帮忙解决下,如果我的程序有问题,也请麻烦指出来,这是问题1.问题2是为什么得出的结果的过程中出现过负数?题目是这样的,求1的阶乘+2的阶乘+3的阶乘+~~~~+18的阶乘
我都是在C-FREE软件下编写的
程序1
#include"stdio.h"
void main()
{
int a=1,sum=0,s=1;
while(a<18)
{
s=s*a;
sum=sum+s;
a++;
printf("sum=sum+s=%d\n",sum=sum+s);
}
}
程序2
#include"stdio.h"
void main()
{
double sum=0,s=1;
int i=1;
for(i=1;i<=18;i++)
{
s=s*i;
sum=sum+s;
}
printf("SUM=%.01f",sum);
}