编写一个程序,求1!+2!+...+n!,n为输入的整数并且3<=n<=20。

来源:百度知道 编辑:UC知道 时间:2024/05/17 11:09:50
我编写的程序是
#include "stdio.h"
void main()
{
int n,i,a=1,sum=0;
if(3<=n<=20)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a=a*i;
sum=sum+a;
}
printf("1!+2!+...+%d!=%d\n",n,sum);
}
else printf("输入数据不符合要求\n");
}
我奇怪为什么输入3到20以外的数字,程序还能够计算?希望大家能帮帮忙,谢谢!!!

第一if(3<=n<=20)这个不能这么写,应该是 if(3<=n&&n<=20)
第二你的主程序写错了,你按照这个程序是算不出来的正确结果的,你算的结果是n!而不是1!+2!+...+n!,你如果想算正确结果我推荐你用递归调用,这样比较容易计算出正确结果。

if(3<=n<=20)这个不能这么写,应该是 if(3<=n&&n<=20)

if(3<=n<=20)
改为if(3<=n && n<=20)

if(3<=n<=20)这里语法错误了,去查一下书吧!